I try to add to my app Google Tag Manger referrer tracker. I use this documentation: https://developers.google.com/tag-manager/android/v4/ua
And add to my Maniferst below code:
<service android:name="com.google.tagmanager.InstallReferrerService" />
<receiver android:name="com.google.tagmanager.InstallReferrerReceiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
now using docs for testing and verification: https://developers.google.com/analytics/solutions/testing-play-campaigns
I sent via adb
echo 'am broadcast \
-a com.android.vending.INSTALL_REFERRER \
-n "pl.my.app/com.google.tagmanager.InstallReferrerReceiver" \
--es "referrer" \
"utm_source=test_source&utm_medium=test_medium&utm_term=test_term&utm_content=test_content&utm_campaign=test_name"; \
exit' | ./adb shell
And I get crash in my app:
java.lang.RuntimeException: Unable to instantiate receiver com.google.tagmanager.InstallReferrerReceiver: java.lang.ClassNotFoundException: Didn't find class "com.google.tagmanager.InstallReferrerReceiver" on path: DexPathList[[zip file "/data/app/pl.my.app-2/base.apk"],nativeLibraryDirectories=[/data/app/pl.my.app-2/lib/arm, /vendor/lib, /system/lib]] at android.app.ActivityThread.handleReceiver(ActivityThread.java:2724) at android.app.ActivityThread.-wrap14(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1431) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5443) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.tagmanager.InstallReferrerReceiver" on path: DexPathList[[zip file "/data/app/pl.my.app-2/base.apk"],nativeLibraryDirectories=[/data/app/pl.my.app-2/lib/arm, /vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) at android.app.ActivityThread.handleReceiver(ActivityThread.java:2719) at android.app.ActivityThread.-wrap14(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1431) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5443) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) Suppressed: java.lang.ClassNotFoundException: com.google.tagmanager.InstallReferrerReceiver at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 10 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
Any idea what going on?
I guess that I should add something in gladle. I think that
compile 'com.google.android.gms:play-services-tagmanager:9.4.0'
is not enough.
compile 'com.google.android.gms:play-services:9.4.0'in your gradle file? - sdabet