简体   繁体   中英

java.lang.ClassNotFoundException: Didn't find class “com.google.android.gms.measurement.AppMeasurement” on path: DexPathList

My app was running well but it is crashing now. I started getting warnings even though I am not integrating with firebase. Now I think that I can not solve this problem. I tried every possible solution available on stackoverflow. Also, I am using viewpager in my code if that helps.

LogCat

 W/Ads: Invoke Firebase method getInstance error.
                                  java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.measurement.AppMeasurement" on path: DexPathList[[zip file "/data/app/com.kidsbox.android.abcforkidsalphabetshapesandnumbers-1/base.apk"],nativeLibraryDirectories=[/data/app/com.kidsbox.android.abcforkidsalphabetshapesandnumbers-1/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 com.google.android.gms.ads.internal.scionintegration.b.a(:com.google.android.gms.DynamiteModulesA:167)
                                      at com.google.android.gms.ads.internal.scionintegration.b.a(:com.google.android.gms.DynamiteModulesA:152)
                                      at com.google.android.gms.ads.internal.scionintegration.b.g(:com.google.android.gms.DynamiteModulesA:43)
                                      at com.google.android.gms.ads.internal.request.c.a(:com.google.android.gms.DynamiteModulesA:26)
                                      at com.google.android.gms.ads.internal.util.b.run(:com.google.android.gms.DynamiteModulesA:4)
                                      at com.google.android.gms.ads.internal.util.af.call(:com.google.android.gms.DynamiteModulesA:3)
                                      at com.google.android.gms.ads.internal.util.ag.run(:com.google.android.gms.DynamiteModulesA:3)
                                      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
                                      at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                      at java.lang.Thread.run(Thread.java:818)
                                    Suppressed: java.lang.ClassNotFoundException: com.google.android.gms.measurement.AppMeasurement
                                      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)
                                            ... 13 more
                                   Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

Manifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kidsbox.android.abcforkidsalphabetshapesandnumbers">

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".Alphabet" />
    <activity android:name=".Number" />
    <activity android:name=".Shapes"/>
</application>

Build.gradle

apply plugin: 'com.android.application'

android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
    applicationId "com.kidsbox.android.abcforkidsalphabetshapesandnumbers"
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
 }

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})

compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.google.android.gms:play-services-ads:11.0.4'
testCompile 'junit:junit:4.12'
}

I think this issue is similar with How to enable multidexing with the new Android Multidex support library

  1. Add implementation "com.android.support:multidex:1.0.1" in your build.gradle's dependencies ( implementation can be replaced with compile );
  2. Add a custom application extends from Application. Add code as below:

     override fun attachBaseContext(base: Context?) { super.attachBaseContext(base) MultiDex.install(this) } 
  3. Add your custom application in AnroidManifest.xml as android:name=".CustomApplication"

您应该使用编译“ com.google.firebase:firebase-ads:11.2.0”,而不是编译“ com.google.android.gms:play-services-ads:11.2.0”

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM