Android Question Didn't find class "com.google.android.gms.ads.purchase.InAppPurchaseActivity"

scsjc

Well-Known Member
Licensed User
Longtime User
Hi, receive this error with Crashlytics:

B4X:
Caused by java.lang.ClassNotFoundException
Didn't find class "com.google.android.gms.ads.purchase.InAppPurchaseActivity" on path: DexPathList[[zip file "/data/app/myworldapp.people.com-1/base.apk"],nativeLibraryDirectories=[/data/app/myworldapp.people.com-1/lib/x86, /vendor/lib, /system/lib]]
dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:64)
java.lang.ClassLoader.loadClass (ClassLoader.java:511)
java.lang.ClassLoader.loadClass (ClassLoader.java:469)
android.app.Instrumentation.newActivity (Instrumentation.java:1067)
android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2320)
android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2479)
android.app.ActivityThread.-wrap11 (ActivityThread.java)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1347)
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:148)
android.app.ActivityThread.main (ActivityThread.java:5420)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:726)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616)

It is possible that the error occurs by using:

B4X:
#AdditionalJar: com.google.android.gms:play-services-analytics
 

scsjc

Well-Known Member
Licensed User
Longtime User
I guess that it happens from one of the ads. Which SDKs are you using for the ads?
i use:

upload_2018-11-20_16-32-26.png
 
Upvote 0

jmon

Well-Known Member
Licensed User
Longtime User
I have the same error, on at least one smartphone
Nexus 6, Motorola, Android 7.1.1, affecting 5 users with same specs.

My libraries:
capture2.PNG


In my case, I use the Billing Library, and wait for the "BillingSupported" : True, I also check that GooglePlayServicesAvailable = true:

B4X:
Sub manager_BillingSupported (Supported As Boolean, Message As String)
    If Starter.analytics.IsGooglePlayServicesAvailable Then
        Starter.BILLING_SUPPORTED = Supported
        If Supported Then
            manager.GetOwnedProducts
        End If
    Else
        Starter.BILLING_SUPPORTED = False
    End If       
End Sub

I have the same error as above, but crashlytics gives another one on top that could help:
Fatal Exception: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.jmon.nameexplorer/com.google.android.gms.ads.purchase.InAppPurchaseActivity}: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.ads.purchase.InAppPurchaseActivity" on path: DexPathList[[zip file "/data/app/com.jmon.nameexplorer-1/base.apk"],nativeLibraryDirectories=[/data/app/com.jmon.nameexplorer-1/lib/arm, /system/lib, /vendor/lib]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2567)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
Caused by java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.ads.purchase.InAppPurchaseActivity" on path: DexPathList[[zip file "/data/app/com.jmon.nameexplorer-1/base.apk"],nativeLibraryDirectories=[/data/app/com.jmon.nameexplorer-1/lib/arm, /system/lib, /vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(XposedBridge.java)
at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:360)
at java.lang.ClassLoader.loadClass(<Xposed>)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.Instrumentation.newActivity(Instrumentation.java:1078)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2557)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)

Is it caused by the activity "ComponentInfo" ?

Thanks
 
Upvote 0

jmon

Well-Known Member
Licensed User
Longtime User
ok, in my case it may be caused by Admob Consent Manager, here (I didn't check if billing is supported):
B4X:
Sub ConsentStateAvailable
    Dim consent As ConsentManager = Starter.consent
    If consent.ConsentState = consent.STATE_UNKNOWN And consent.IsRequestLocationInEeaOrUnknown Then
        'Set last parameter to False if you don't want to show the "pay for ad-free" option.
        'Change privacy policy URL.
        consent.ShowConsentForm("http://justfunapps.blogspot.com/2014/12/baby-name-simple-privacy-policy.html", True, True, True)
        Wait For Consent_FormResult (Success As Boolean, UserPrefersAdFreeOption As Boolean)
        If Success Then
            If consent.ConsentState = consent.STATE_UNKNOWN And UserPrefersAdFreeOption Then

                'in app purchase
                If Starter.analytics.IsGooglePlayServicesAvailable Then '<<< Here
                    manager.RequestPayment("adsfree", "inapp", "consent")
                Else
                    ToastMessageShow("Google Play Services is Missing. Please try again later.",False)
                End If
                    
    
            End If
        Else
            Log($"Error: ${LastException}"$)
        End If
    End If
    LoadAd
End Sub
 
Upvote 0

jmon

Well-Known Member
Licensed User
Longtime User
Upvote 0
Top