Ошибка «Невозможно создать экземпляр активности»

У одного из моих приложений для Android около 100 000 пользователей, и примерно 10 раз в неделю я получаю сообщение о следующем исключении через инструмент Google Market:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.rebm.asp/org.rebm.asp.MainActivity}:
  java.lang.ClassNotFoundException: org.rebm.asp.MainActivity in loader dalvik.system.PathClassLoader[/mnt/asec/org.rebm.asp-1/pkg.apk]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2753)
at android.app.ActivityThread.access$2500(ActivityThread.java:129)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2107)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4701)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: org.rebm.asp.MainActivity in loader dalvik.system.PathClassLoader[/mnt/asec/org.rebm.asp-1/pkg.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2651)
... 11 more

При поиске в Интернете эта ошибка обычно указывает на то, что что-то не так с файлом манифеста и используемыми именами пакетов. Однако я не могу воспроизвести эту ошибку на своих устройствах или в эмуляторе. Я знаю об этой ошибке только через инструмент Market. Все, что я могу сделать, так это то, что это редкая ошибка, потому что я знаю, что многие люди используют приложение, и ни один из обзоров не указывает на его сбой. int a = 1; executeCallback (); // C: вопрос лежит в этом диапазоне вернуть; } public void executeCallback () { // A: random ...

Если бы мне пришлось вызвать функцию (все написано на Java):

public int hello() {
int a = 1;
executeCallback();
// C: Question lies in this range
return a;
}

public void executeCallback() {
// A: random code to execute before asynccallback
   randomClass.randomMethod(int a, int b, AsyncCallback<ReturnType>() {
      onSuccess();
      onFailure();
   });
// B: random code to execute after asynccallback
}

Я понимаю, что материал в комментарии A будет выполняться, и одновременно будет выполняться несинхронный randomMethod и комментарий в B будет выполнен.

Мне было интересно, однако, пока выполняется randomMethod (если это занимает достаточно много времени), функция вернется к вызывающему (в данном случае методу 'hello') и начнет ли выполнение кода в комментарий C? Или executeCallback будет ждать завершения randomMethod, прежде чем он вернется?

И если это первое, предположим, мне нужна информация, которую касается randomMethod, чтобы меня коснулись, прежде чем я смогу продолжить комментировать C, как я могу заставить ее «подождать», чтобы убедиться, что это будет так?

5
задан RankWeis 17 February 2011 в 06:12
поделиться