java - 未找到类 "com.google.android.gms.common.app.GmsApplication"

标签 java android android-gradle-plugin google-play-services

我在 Android 4.4 上使用 Google Play 服务版本 100884030 运行我的应用时遇到问题。出现以下错误:

FATAL EXCEPTION: main
Process: com.google.android.gms, PID: 8678
java.lang.RuntimeException: Unable to instantiate application com.google.android.gms.common.app.GmsApplication: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.common.app.GmsApplication" on path: DexPathList[[zip file "/system/framework/com.android.media.remotedisplay.jar", zip file "/system/framework/com.android.location.provider.jar", zip file "/system/framework/com.google.android.ble.jar"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
    at android.app.LoadedApk.makeApplication(LoadedApk.java:507)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4301)
    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:5001)
    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:785)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.common.app.GmsApplication" on path: DexPathList[[zip file "/system/framework/com.android.media.remotedisplay.jar", zip file "/system/framework/com.android.location.provider.jar", zip file "/system/framework/com.google.android.ble.jar"],nativeLibraryDirectories=[/vendor/lib, /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.Instrumentation.newApplication(Instrumentation.java:975)
    at android.app.LoadedApk.makeApplication(LoadedApk.java:502)
    ... 11 more

我的 Gradle 设置:

compileSdkVersion 25
buildToolsVersion "25.0.2"
minSdkVersion 14 
targetSdkVersion 22
....
compile 'com.google.android.gms:play-services-analytics:10.2.1'
compile 'com.google.android.gms:play-services-ads:10.2.1'

那么你看出问题出在哪里了吗?

谢谢!!!

最佳答案

我想我也遇到了同样的问题,结果发现设备上的 .apk 已损坏。也许是内部闪存(硬件)问题?

这就是我所做的:

  1. 打开设备上的开发者设置(通过在“设置”的“关于”屏幕中点击版本号七次)。
  2. 从出现的“开发者设置”菜单中,启用“USB 调试”。
  3. 连接到安装了 adb 的电脑。
  4. 查找设备上现有 Google Play Services 应用程序的路径,使用 adb shell pm path com.google.android.gms
  5. 使用该路径从设备中提取现有的 apk,并使用 adb pull /data/app/com.google.android.gms-1/base.apk 进行检查。 (将此处的路径替换为您在第 4 点获得的路径)。
  6. 通过将其扩展名更改为 .zip 并进行 zip 完整性测试来检查 apk 是否已损坏。就我而言,它说 classes2.dex bad CRC .
  7. 从值得信赖的地方下载一个好的应用程序。另一个相同的设备将是完美的,但我没有,所以我从 apkmirror.com 获得了我的设备(确保您选择了正确的变体,其中有许多版本号相同)。我下载的和从手机里拉出来的字节数是一样的,但是里面的一段数据不一样。
  8. 使用 adb install -r <downloaded file> 安装下载的 apk .
  9. 重新启动设备。

就是这样。此后一切正常。

关于java - 未找到类 "com.google.android.gms.common.app.GmsApplication",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44004699/

相关文章:

javascript - 使用 focusMode 约束获取所需的媒体设备

java - 安卓工作室 : Dependencies not included in Java module using Gradle 4. 1

java - 虽然 (Iterator2.hasNext()) 相关问题,因为我的数据不是按行填充,而是按单元格填充

java - 使用 Spring AOP 引入新功能

java - 返回主显示 fragment 时,GoogleMap fragment 会使应用程序崩溃

cordova - 如何下载gradle的库依赖项以供外部使用?

android - Make Project 失败,但 Build Signed APK 可以在 Android Studio 中运行。它们有何不同?

Chrome 扩展中的 Java

java - 使用 Spring 和 HTML5 瓶颈搜索/清理本地视频

android - xoom 上的闪存视频性能不佳