Прерывистый класс Android не найден, исключение во время выполнения

Один или два моих пользователя сталкиваются с вышеуказанным классом, не найденным во время выполнения, при попытке запустить мое приложение.

Как это может произойти и как я могу это исправить? Это плохая установка?

Спасибо

Павел

Трассировка стека получена через сайт Android Publishers. Я не могу повторить это сам. (com.android.app.app.app) — это имя приложения/активности, определенное в манифесте.

java.lang.RuntimeException: невозможно создать экземпляр активности ComponentInfo{my,app.app.app/com.android.app.app.app}: java.lang.ClassNotFoundException: com.android.app.app.app в загрузчике dalvik. system.PathClassLoader[/mnt/asec/my,app.app.app-1/pkg.apk] в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java :2753) в android.app.ActivityThread.access$2500(ActivityThread.java:129) в android.app.ActivityThread$H.handleMessage(ActivityThread.java:2107) в android.os.Handler.dispatchMessage(Handler.java:99) ) в android.os.Looper.loop(Looper.java:143) в android.app.ActivityThread.main(ActivityThread.java:4701) в java.lang.reflect.Method.invokeNative(собственный метод) в 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: com.android.app.app.app в загрузчике dalvik.system.PathClassLoader[/mnt/asec/my,app .app.app-1/pkg.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.newActivity(Instrumentation.java:1021) в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2651) ... еще 11


person Paul S    schedule 30.03.2011    source источник
comment
Еще немного информации будет полезно.   -  person Mudassir    schedule 30.03.2011
comment
Как, например? Конечно, исключение класса, не найденного во время выполнения, происходит на 100% или не происходит вообще?   -  person Paul S    schedule 30.03.2011
comment
Например, использование любого стороннего API, собственного кода или чего-либо еще, как вы подозреваете, может вызвать такое исключение.   -  person Mudassir    schedule 30.03.2011
comment
java.lang.RuntimeException: невозможно создать экземпляр активности ComponentInfo{my,app.app.app/com.android.app.app.app}: java.lang.ClassNotFoundException: com.android.app.app.app в загрузчике dalvik. system.PathClassLoader[/mnt/asec/my,app.app.app-1/pkg.apk] в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659)   -  person Paul S    schedule 30.03.2011
comment
Я использую jni, но дело в том, как это может случиться, либо класс существует, либо он не прав? Я не понимаю, как это может быть или не быть там, если только Google, возможно, не разрешает пользователям загружать приложения, с которыми их устройства не справляются?   -  person Paul S    schedule 30.03.2011
comment
Использует ли ваше приложение какие-либо аппаратные ресурсы конкретного устройства?   -  person Mudassir    schedule 30.03.2011
comment
Я бы не сказал, что это конкретное устройство, но он запрашивает использование GPS, акселерометра и сенсорного экрана, они отмечены как таковые в файле манифеста. Разве Android Market не должен отфильтровывать эти устройства? Я ценю вашу помощь.   -  person Paul S    schedule 30.03.2011
comment
@Paul S: рассмотрите возможность публикации полной реальной трассировки стека. В Android нет com.android.app.app.app package, если только какой-нибудь производитель оборудования не поместил его туда.   -  person CommonsWare    schedule 30.03.2011
comment
Я изменил имя, так как это имя пакета приложения/активности. Там нет ничего непоправимого. Я предполагаю, что это означало бы полный отказ установки? Что касается полной трассировки стека, как мне это сделать с ограниченным количеством символов, которые вы можете ввести на этом сайте?   -  person Paul S    schedule 30.03.2011
comment
Я видел эту трассировку стека раньше в моей консоли ошибок для приложения на рынке.   -  person Blundell    schedule 30.03.2011
comment
@Blundell: Вам удалось решить эту проблему?   -  person Paul S    schedule 30.03.2011
comment
@Paul Нет, я не :-( это мой класс расширил приложение, и в то время приложение было на их SD-карте. Но с тех пор я его больше не видел. Возможно, у него произошел сбой в его поток загрузки.   -  person Blundell    schedule 30.03.2011
comment
Да, похоже, это одна из тех проблем, которые вы просто не можете уловить, так как это основной класс активности. Тем не менее, я бы предпочел не получать плохую оценку за проблему, не зависящую от меня, но я отвлекся. Спасибо всем.   -  person Paul S    schedule 30.03.2011
comment
+1 точка данных для другого приложения, которое столкнулось с такой ошибкой.   -  person Anm    schedule 05.05.2011
comment
какая версия андроида является трассировкой стека?   -  person Robby Pond    schedule 06.05.2011


Ответы (1)


Я бы проверил, устанавливают ли эти пользователи приложение на SD-карту: если приложение установлено, значок приложения может быть виден в списке приложений (поскольку он хранится на устройстве), но если SD-карта недоступна ( удалены или, возможно, установлены для чтения на ПК через USB), когда пользователь нажимает значок приложения, попытки загрузки завершатся неудачно. Ты заметишь:

ComponentInfo{my,app.app.app/com.android.app.app.app}: java.lang.ClassNotFoundException: com.android.app.app.app in loader dalvik.system.PathClassLoader[/mnt/asec/my,app.app.app-1/pkg.apk] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659) at 

в трассировке стека выше: является ли /mnt/asec путем хранения SD-карты на устройстве?

person Femi    schedule 12.05.2011
comment
Привет, Феми! Глядя на androidforums.com/droid-all-things -root/ Оказывается, /mnt/asec — это место, где хранятся зашифрованные виртуальные диски, содержащие пакет при его сохранении на SD-карте. И все же, как поймать исключение? - person Paul S; 01.06.2011
comment
Вы не можете поймать исключение: вашего кода вообще нет на устройстве, поэтому вы не можете его поймать. Если SD-карта подключена через USB или удалена, ваш код в настоящее время недоступен. Сообщите пользователю, что он не может удалить SD/смонтировать SD и одновременно использовать приложение. - person Femi; 01.06.2011
comment
Феми, я так и думал. Приятно, когда Android обвиняет приложение в том, с чем оно абсолютно ничего не может сделать. Спасибо за вашу помощь. - person Paul S; 23.06.2011