我正在使用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清单..和服务类,并在棉花糖设备上接收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 字节码文件。解决方案是使用多dex支持。
在你的 build.gradle 依赖项中包含以下内容:
compile 'com.android.support:multidex:1.0.0'
public class MyApp extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
}
}
比在清单中添加多晶应用程序类
<?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 类对其进行扩展