簡體   English   中英

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

[英]google GCM android crashes ( java.lang.NoClassDefFoundError: com.google.android.gms.R$string )

我正在使用Google GCM服務開發一個應用程序,它似乎在啟動時所有前棒棒糖設備上崩潰..我已經關注谷歌教程......並且它正在研究棒棒糖和棉花糖

這是我的項目級依賴項

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 manifest ..和服務類,並在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)

我有同樣的問題。你可能在5.0版之前的設備上面對它。這種情況發生的原因是android 5.0之前的版本使用Dalvik,默認情況下,Dalvik將應用程序限制為每個APK的單個classes.dex字節碼文件。解決方案是使用multidex支持。

包含在build.gradle依賴項中:

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


public class MyApp extends MultiDexApplication { 

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

}

比在你的Manifest中添加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類擴展它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM