java.lang.ClassNotFoundException:没有';“找不到类”;com.google.android.gms.ads.MobileAdsInitProvider“;

java.lang.ClassNotFoundException:没有';“找不到类”;com.google.android.gms.ads.MobileAdsInitProvider“;,java,android,admob,Java,Android,Admob,我在Android版本4.4及以下版本中面临这个问题。我集成了Google admob,当我运行该应用程序时,该应用程序崩溃,ClassNotFoundException 请在下面找到stacktrace Process: app.learnkannada.com.learnkannadakannadakali, PID: 1320 java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.Mobi

我在Android版本4.4及以下版本中面临这个问题。我集成了Google admob,当我运行该应用程序时,该应用程序崩溃,ClassNotFoundException

请在下面找到stacktrace

Process: app.learnkannada.com.learnkannadakannadakali, PID: 1320
java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.ads.MobileAdsInitProvider" on path: DexPathList[[zip file "/data/app/app.learnkannada.com.learnkannadakannadakali-2.apk"],nativeLibraryDirectories=[/data/app-lib/app.learnkannada.com.learnkannadakannadakali-2, /system/lib]]
    at android.app.ActivityThread.installProvider(ActivityThread.java:4793)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:4385)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4325)
    at android.app.ActivityThread.access$1500(ActivityThread.java:135)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.java:5017)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
    at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.ads.MobileAdsInitProvider" on path: DexPathList[[zip file "/data/app/app.learnkannada.com.learnkannadakannadakali-2.apk"],nativeLibraryDirectories=[/data/app-lib/app.learnkannada.com.learnkannadakannadakali-2, /system/lib]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
    at android.app.ActivityThread.installProvider(ActivityThread.java:4778)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:4385) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4325) 
    at android.app.ActivityThread.access$1500(ActivityThread.java:135) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5017) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
    at dalvik.system.NativeStart.main(Native Method) 
我试着在谷歌上搜索,但没有发现这个问题。请求社区在这方面提供帮助


注意:请注意,我已经在Android清单中添加了移动广告元数据。

您收到此错误,因为您使用了multiDex,但缺少一些实现部分。请按照以下步骤解决此错误

1) 在应用程序级渐变文件的defaultconfig中添加“multiDexEnabled true”

android {
    defaultConfig {
        ...
        minSdkVersion 21
        targetSdkVersion 28
        multiDexEnabled true
    }
    ...
}
2) 如果您的minSdkVersion小于21,则添加以下依赖项

dependencies {
  implementation 'com.android.support:multidex:1.0.3'
}
3) 将MultiDexApplication类用作应用程序类。有三种方法可以将MultiDexApplication用作应用程序类

public class MyApplication extends SomeOtherApplication {
  @Override
  protected void attachBaseContext(Context base) {
     super.attachBaseContext(base);
     MultiDex.install(this);
  }
}
i) 只需在AndroidManifest.xml文件中设置MultiDexApplication类

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp">
    <application
            android:name="android.support.multidex.MultiDexApplication" >
        ...
    </application>
</manifest>
iii)如果由于您已经扩展了其他类并且无法更改它而无法扩展MultiDexApplication,则在自定义应用程序类中使用下面的方法

public class MyApplication extends SomeOtherApplication {
  @Override
  protected void attachBaseContext(Context base) {
     super.attachBaseContext(base);
     MultiDex.install(this);
  }
}
注意:我遇到了同样的错误,只是通过扩展MultiDexApplication类解决了这个问题

  • 首先在android defaultConfig中启用multiDexEnable

    android {
        defaultConfig {
           minSdkVersion 14
           targetSdkVersion 22
           multiDexEnabled true
        }
    }
    
  • 如果您的minSdkVersion小于21,请将此添加到dependency中

    implementation'com.android.support:multidex:1.0.3'


  • 我刚刚做了“构建”>“清理项目”,它工作正常。

    我也收到了这个错误消息。 在我的例子中,这与multidex无关,而是与兼容性javaversion有关

    文件>>项目结构>>模块>>应用>>属性 将“源兼容性”和“目标兼容性”更改为1.8(当前)

    或者在“模块:应用程序”中的build.gradle中(不在项目下)

    所有这些都归功于懒虫:
    我遇到了一个类似的错误,这就解决了它

    android { 
        ...
        compileOptions {
            sourceCompatibility = 1.8
            targetCompatibility = 1.8
        }
    }
    

    我没有在上面Majid Mohammad发布的地方发表评论,所以我添加了一个答案。

    你找到解决方案了吗。。我面临着同样的问题我也面临着这个问题。高于5的SDK工作正常。但不低于。。。请任何人帮助我们找到解决方案…谢谢。我尝试过同样的解决方案,但效果不错。如果你认为这是一个有效的问题,请向上投票。我尝试了你上面提到的所有步骤,但仍然出现了相同的错误。因此,我完成了所有步骤,仍然出现了相同的错误。我会尝试扩展MultiDexApplication类,但我不能扩展另一个类。。。请帮忙。。。。另外,在清单文件中设置,…multidex.multidex应用程序未解决,不知道为什么…我发现了问题,我只需要将multidex粘贴到BaseContext中。先生,您是一个传奇人物。非常感谢。能够支持legacy,感觉很棒;)
    android { 
        ...
        compileOptions {
            sourceCompatibility = 1.8
            targetCompatibility = 1.8
        }
    }