2016-09-07 5 views
0

Работа над обновлением моего UrbanAirhip до 7.2. Ошибок компиляции нет, и приложение работает нормально, пока не получит push-сообщение. В этот момент он выходит из строя с помощью следующей трассировки стека:Приложение UrbanAirship падает после получения сообщения

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$000(UAirship.java:42) at com.urbanairship.UAirship$2.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$000(UAirship.java:42)  at com.urbanairship.UAirship$2.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

Когда я проверяю, если класс виден (Cmd-O) и начать печатать, класс приходит сразу.

С кем это столкнулось? Я понятия не имею, как это исправить. Благодарю.

enter image description here

+0

Вы можете поделиться своим файлом AndroidManifest? Я думаю, что вам может не хватать приемник в файле манифеста –

+0

@android_Muncher, вероятно, прав. Убедитесь, что он там. И если это уже есть, попробуйте чистую сборку, Android Studio иногда делает необъяснимые вещи ... – privatestaticint

ответ

1

Мы переименовали GCMPushReceiver в GcmPushReceiver. Вы должны удалить все приемники, службы и действия Urban Airship из вашего манифеста и включить автоматическую манифестацию, чтобы объединить их для вас.

Смежные вопросы