2010-12-14 1 views
3

У меня есть работающее приложение для Android. Он работает на более чем 500 различных устройствах. МанифестClassNotFoundException на вкладке Galaxy (только)

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="info.decamps.droid.photoid" android:versionCode="5" 
android:versionName="1.4"> 
<application android:icon="@drawable/icon" android:label="@string/app_label" 
    android:name="PhotoIDroid" android:description="@string/app_desc" 
    android:debuggable="FALSE"> 

Но когда он начал с Samsung Galaxy Tab, она не запускается и вылетает с:

java.lang.RuntimeException: Невозможно создать экземпляр приложения информации. decamps.droid.photoid.PhotoIDroid: java.lang.ClassNotFoundException: info.decamps.droid.photoid.PhotoIDroid загрузчик dalvik.system.PathClassLoader [/data/app/info.decamps.droid.photoid-1. apk] по адресу android.app.ActivityThread $ PackageInfo.makeApplication (ActivityThread.java:670) на android.app.ActivityThread.handleBindApplication (ActivityThread.java:4483) в android.app.ActivityThread.access $ 3000 (ActivityThread.java: 135) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:2181) на android.os.Handler.dispatchMessage (Handler.java:99) на android.os.Looper.loop (петлителя .java: 144) at android.app.ActivityThread.main (ActivityThread.java:4937) at java.lang.reflect.Method.invokeNative (родной Me ThOD) в java.lang.reflect.Method.invoke (Method.java:521) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868) в com.android. internal.os.ZygoteInit.main (ZygoteInit.java:626) на dalvik.system.NativeStart.main (Родной метод) вызвано следующими причинами: java.lang.ClassNotFoundException: info.decamps.droid.photoid.PhotoIDroid в загрузчике dalvik.system.PathClassLoader [/data/app/info.decamps.droid.photoid-1.apk] на dalvik.system.PathClassLoader.findClass (PathClassLoader.java:243) в java.lang.ClassLoader.loadClass (ClassLoader.java:573) на java.lang.ClassLoader.loadClass (ClassLoader.java:532) на android.app.Instrumentation.newApplication (Instrumentation.java:945) в android.app.ActivityThread $ PackageInfo.makeApplication (ActivityThread.java:660) ... 11 более

Как Самсунг Galaxy не найти класс приложений? Любая подсказка о том, как решить эту проблему?

Я смог воспроизвести tis crash на эмуляторе Samsung Galaxy.

+0

Я не использую ProGuard – rds

+2

@rds: Что такое суперкласс «info.decamps.droid.photoid.PhotoIDroid»? – CommonsWare

+0

@CommonsWare Я не уверен, что понимаю ваш вопрос. Я не разработал этот класс, это класс ['Application'] (http://developer.android.com/reference/android/app/Application.html), сгенерированный Android из манифеста. Из документа ", как правило, нет необходимости в подклассе Application.« – rds

ответ

0

Я удалил объявление атрибута android:name с AndroidManifest.xml, и теперь он работает.

+0

Это в основном означает, что он больше не использует ваш пользовательский класс 'Application'.Если это работает для вас, классно. Если нет, поскольку предположительно существует суперкласс (' Application'), проверьте статические инициализаторы и т. п., чтобы увидеть, что вы просите, чтобы это могло отсутствовать. – CommonsWare

+0

Спасибо, но я не написал какой-либо пользовательский класс приложения. Кажется, большинство мобильных телефонов (и эмулятора) игнорируют «android: name», если класс не существует. Возможно, он был добавлен недавно в API (поэтому игнорируется старым устройства) – rds

+1

android: имя было там начиная с версии 1.0 и всегда должно быть разбито приложение, если указанный класс не может быть найден. Странный. – hackbod