当前位置: 首页 > 知识库问答 >
问题:

谷歌GCM android崩溃(java.lang.NoClassDefFoundError:com.google.android.gms.R$string)

陶原
2023-03-14

我正在使用Google GCM服务开发一个应用程序,它似乎在Launch的所有Lollipop前设备上都崩溃了...我遵循了谷歌教程...以及它在Lollipop和Marshmallow上的工作

以下是我的项目级依赖项

dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
        classpath 'com.google.gms:google-services:1.5.0'
}

我的应用程序级gradle文件中有此项

compile 'com.google.android.gms:play-services:8.4.0'

还有这个

apply plugin: 'com.google.gms.google-services'

我还设置了android清单。。以及相应的服务类别,并在Marshmallow设备上接收GCM。

我有这个错误。

E/AndroidRuntime: FATAL EXCEPTION: main
      Process: itcurves.driver, PID: 12788
      java.lang.NoClassDefFoundError: com.google.android.gms.R$string
      at com.google.android.gms.measurement.zza.<init>(Unknown Source)
      at com.google.android.gms.measurement.zza.zzaR(Unknown Source)
      at com.google.android.gms.measurement.internal.zzn.zziJ(Unknown Source)
      at com.google.android.gms.measurement.internal.zzz.zza(Unknown Source)
      at com.google.android.gms.measurement.internal.zzw.<init>(Unknown Source)
      at com.google.android.gms.measurement.internal.zzaa.zzDj(Unknown Source)
      at com.google.android.gms.measurement.internal.zzw.zzaT(Unknown Source)
      at com.google.android.gms.measurement.AppMeasurementContentProvider.onCreate(Unknown Source)
      at android.content.ContentProvider.attachInfo(ContentProvider.java:1591)
      at android.content.ContentProvider.attachInfo(ContentProvider.java:1562)
      at android.app.ActivityThread.installProvider(ActivityThread.java:4889)
      at android.app.ActivityThread.installContentProviders(ActivityThread.java:4476)
      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4413)
      at android.app.ActivityThread.access$1500(ActivityThread.java:142)
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1263)
      at android.os.Handler.dispatchMessage(Handler.java:102)
      at android.os.Looper.loop(Looper.java:136)
      at android.app.ActivityThread.main(ActivityThread.java:5120)
      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:792)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
      at dalvik.system.NativeStart.main(Native Method)

共有1个答案

安承教
2023-03-14

我也有同样的问题。在5.0版本之前的设备上可能会遇到这种情况。出现这种情况的原因是,android 5.0之前的版本使用Dalvik,默认情况下,Dalvik将应用程序限制为单个类。每个APK的dex字节码文件。解决方案是使用multidex支持。

包括在您的构建中。gradle依赖项:

compile 'com.android.support:multidex:1.0.0'


public class MyApp extends MultiDexApplication { 

  @Override
  public void onCreate() {
     super.onCreate(); 
  } 

}

而不是在清单中添加MultiDexApplication类

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name=".MyApp">
        ...
    </application>
</manifest>

注意:如果您已经有了应用程序类,只需使用MultiDexApplication类对其进行扩展即可

 类似资料:
  • 我正在我的应用程序中使用谷歌地图。第一次正确加载google Maps时,点击页面上有一个按钮,但再次转到该页面并点击该按钮会使我的应用程序崩溃。 这是我的代码: 这是我的日志:

  • 我已经升级了我的应用程序以支持SDK26,现在Google Analytics在Android Oreo上运行时会导致崩溃: 致命异常:java.lang.RuntimeException:无法启动接收方com.google.android.gms.analytics.analyticsReceiver:java.lang.IllegalStateException:不允许启动服务意图{act=c

  • 我正在从导入geoJSON数据。jsons文件。它在某些文件上工作得很好,但在其他文件上就不行了。我认为我的文件有问题,但我在geojson lint和geojson.io上测试了它们,没有问题。 这是堆栈: 这是我非常简单的代码 这是我的一个JSON导致了这个错误 build.gradle(项目)和build.gradle(应用程序) 欢迎任何想法

  • 在将我的应用上传到play store之前,我在play console中创建了一个测试版本。该应用程序有一个playstore自动完成字段,然而,当我从playstore安装我的应用程序的测试版本时,每次我在自动完成字段中写入内容,然后按空格键崩溃! 在android studio上测试该应用程序时,它运行良好,没有任何错误或崩溃。 谢谢你的帮助。 编辑:我使用这个库的自动完成(https://

  • 我试图在solaris机箱中使用远程Weblogic服务器配置jProfiler。服务器正常启动,但是当我将jProfiler GUI连接到服务器时,出现以下错误,服务器崩溃。tmp目录具有足够的访问权限和空间。我可以看到一些文件,比如jpcOYaysx,是在tmp目录中创建的。有人能帮我解决这个问题吗?我们是否有特定于jProfiler的日志,如何配置它? 我找不到任何帮助页面/文档编辑jPro