UrbanAirship 应用程序在收到消息后崩溃
UrbanAirship app crashes upon receipt of message
正在将我的 UrbanAirship 升级到 7.2。没有编译错误,应用程序运行正常,直到它收到推送消息。那时,它崩溃并显示以下堆栈跟踪:
UALib: ManifestUtils - Unable to find class:
com.urbanairship.push.GCMPushReceiver
java.lang.ClassNotFoundException:
com.urbanairship.push.GCMPushReceiver
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:324)
at java.lang.Class.forName(Class.java:285)
at
com.urbanairship.util.ManifestUtils.validateManifest(ManifestUtils.java:215)
at com.urbanairship.UAirship.validateManifest(UAirship.java:736)
at com.urbanairship.UAirship.executeTakeOff(UAirship.java:343)
at com.urbanairship.UAirship.access[=10=]0(UAirship.java:42)
at com.urbanairship.UAirship.run(UAirship.java:299)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.ClassNotFoundException: Didn't find class
"com.urbanairship.push.GCMPushReceiver" on path: DexPathList[[zip file
"/data/app/com.xxx-1/base.apk"],nativeLibraryDirectories=[/data/app/com.xxx-1/lib/arm,
/data/app/com.xxx-1/base.apk!/lib/armeabi-v7a, /vendor/lib,
/system/lib]]
at
dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:324)
at java.lang.Class.forName(Class.java:285)
at
com.urbanairship.util.ManifestUtils.validateManifest(ManifestUtils.java:215)
at com.urbanairship.UAirship.validateManifest(UAirship.java:736)
at com.urbanairship.UAirship.executeTakeOff(UAirship.java:343)
at com.urbanairship.UAirship.access[=10=]0(UAirship.java:42)
at com.urbanairship.UAirship.run(UAirship.java:299)
at java.lang.Thread.run(Thread.java:818)
Suppressed: java.lang.ClassNotFoundException:
com.urbanairship.push.GCMPushReceiver
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 10 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the
boot class loader; no stack trace available
当我检查 class 是否可见 (Cmd-O) 并开始输入时,class 立即出现。
有人遇到过这种情况吗?我不知道如何解决它。谢谢
我们将 GCMPushReceiver 重命名为 GcmPushReceiver。您应该从您的清单中删除所有 Urban Airship 接收器、服务和活动,并让自动清单集成为您合并它们。
正在将我的 UrbanAirship 升级到 7.2。没有编译错误,应用程序运行正常,直到它收到推送消息。那时,它崩溃并显示以下堆栈跟踪:
UALib: ManifestUtils - Unable to find class: com.urbanairship.push.GCMPushReceiver java.lang.ClassNotFoundException: com.urbanairship.push.GCMPushReceiver at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:324) at java.lang.Class.forName(Class.java:285) at com.urbanairship.util.ManifestUtils.validateManifest(ManifestUtils.java:215) at com.urbanairship.UAirship.validateManifest(UAirship.java:736) at com.urbanairship.UAirship.executeTakeOff(UAirship.java:343) at com.urbanairship.UAirship.access[=10=]0(UAirship.java:42) at com.urbanairship.UAirship.run(UAirship.java:299) at java.lang.Thread.run(Thread.java:818) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.urbanairship.push.GCMPushReceiver" on path: DexPathList[[zip file "/data/app/com.xxx-1/base.apk"],nativeLibraryDirectories=[/data/app/com.xxx-1/lib/arm, /data/app/com.xxx-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:324) at java.lang.Class.forName(Class.java:285) at com.urbanairship.util.ManifestUtils.validateManifest(ManifestUtils.java:215) at com.urbanairship.UAirship.validateManifest(UAirship.java:736) at com.urbanairship.UAirship.executeTakeOff(UAirship.java:343) at com.urbanairship.UAirship.access[=10=]0(UAirship.java:42) at com.urbanairship.UAirship.run(UAirship.java:299) at java.lang.Thread.run(Thread.java:818) Suppressed: java.lang.ClassNotFoundException: com.urbanairship.push.GCMPushReceiver at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 10 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
当我检查 class 是否可见 (Cmd-O) 并开始输入时,class 立即出现。
有人遇到过这种情况吗?我不知道如何解决它。谢谢
我们将 GCMPushReceiver 重命名为 GcmPushReceiver。您应该从您的清单中删除所有 Urban Airship 接收器、服务和活动,并让自动清单集成为您合并它们。