2014-05-19 10 views
6

Ich fragte bereits nach der Lösung dieses Problems, aber ich kann keine gute Antwort für mich bekommen. Also versuche ich eine Frage detaillierter zu schreiben.java.lang.RuntimeException: Kann nicht instanziieren Anwendung, java.lang.ClassNotFoundException:

Der unten angegebene Fehler tritt manchmal bei einigen Benutzern auf. Ich habe es nicht durch mehrere Android-Handys, die ich zum Testen habe, aber ich habe diesen Schwarm über Google Developer-Konsole etwa einmal pro Woche :(

Ich habe versucht, herauszufinden, dieses Problem für eine lange zu lösen Zeit Einige Leute sprechen, dass es wegen einer SD-Karte oder Singletone Sachen sein könnte.

Außerdem, in der vorherigen Frage, sagte ein dankbarer Kerl, dass ich "Name" -Attribut des Applcation-Tags in AndroidManifest.xml überprüfen sollte Aber ich habe bereits den Paketnamen darauf gelegt, also glaube ich nicht, dass es der Grund für den Schwarm ist.

Ich habe über ein getestet externe SD-Karte, die ich meine App auf externe SD-Karte installiert und dann abgehängt. Aber ich konnte nicht neu produzieren.

Und über Singletone Zeug, Meine App verwendet keine Instanz der benutzerdefinierten Anwendung Klasse überall. Also denke ich, dass das Singletone-Zeug nicht die Ursache für dieses Problem sein könnte.

Auch ich weiß nicht, wie man den Schwarm wieder herstellt, also brauche ich wirklich ein Dokument oder öffentliches Zeug darüber.

Ich bin mir sicher, dass es jemanden gibt, der diesen Fehler hat und bereits weiß, wie er zu lösen ist. Also, bitte helfen Sie mir zu wissen, was los ist und wie ich es beheben kann. Einen schönen Tag, Danke.

Fehler:

java.lang.RuntimeException: Unable to instantiate 
    application com.***.***.MyApplication: 
    java.lang.ClassNotFoundException: com.***.***.MyApplication at 
    android.app.LoadedApk.makeApplication(LoadedApk.java:501) at 
    android.app.ActivityThread.handleBindApplication(ActivityThread.java:4253) 
    at android.app.ActivityThread.access$1400(ActivityThread.java:143) 
    at 
    android.app.ActivityThread$H.handleMessage(ActivityThread.java:1301) 
    at android.os.Handler.dispatchMessage(Handler.java:99) at 
    android.os.Looper.loop(Looper.java:137) at 
    android.app.ActivityThread.main(ActivityThread.java:4950) at 
    java.lang.reflect.Method.invokeNative(Native Method) at 
    java.lang.reflect.Method.invoke(Method.java:511) at 
    com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:997) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:764) at 
    dalvik.system.NativeStart.main(Native Method) Caused by: 
    java.lang.ClassNotFoundException: com.***.***.MyApplication at 
    dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:501) at 
    java.lang.ClassLoader.loadClass(ClassLoader.java:461) at 
    android.app.Instrumentation.newApplication(Instrumentation.java:982) 
    at android.app.LoadedApk.makeApplication(LoadedApk.java:496) ... 11 
    more 

MyApplication.java:

public class MyApplication extends Application { 
    @Override 
    public void onCreate() { 
     super.onCreate(); 
      ... 
    } 

    @Override 
    public void onTerminate() { 
     super.onTerminate(); 
    } 

    ... 

} 

AndroidManifest.xml:

... 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
... 
<application 
     android:name="com.***.***.MyApplication" 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
+0

warum "Anwendung erweitert"? Versuchen Sie "erweitert Aktivität" – Fraggles

+0

@Fraggles Der Grund, warum ich 'extends Application' verwende, ist, weil globale Stoffe zu initiieren. Es ist keine Klasse für Aktivität –

+0

Verwenden Sie eine externe JAR-Datei? –

Antwort

0

Scheint Ihre binären Klassen sind im Klassenpfad nicht verfügbar. Überprüfen Sie bitte den binären Klassenpfad der Anwendung und prüfen Sie die Verfügbarkeit dieses Pfades.

+0

Ich benutze Eclipse-Tool, so dass es mir eigentlich egal war. Also, wenn es Ihnen nichts ausmacht, könnten Sie mir sagen, wie Sie überprüfen können, was Sie gemeint haben? –

2

Dies wird durch Probleme am Gerät verursacht, die außerhalb Ihrer Kontrolle liegen. Selbst wenn ich ähnliche Berichte in der Entwicklerkonsole erhalte, bin ich nach eingehender Recherche zu dem Schluss gekommen, dass Sie diesen Absturz von Ihrer Seite aus nicht mit herkömmlichen Mitteln verhindern können, da er nicht durch einen Fehler in Ihrer App, sondern durch einen Fehler auf dem System verursacht wird. Sie können das System Ihres Benutzers nicht steuern und viele Abstürze, die aufgrund eines unerwarteten Verhaltens des Systems verursacht werden, können nicht "repariert" werden, nicht von App-Entwicklern.

+1

Wie erklären Sie das den Kunden? : P –

Verwandte Themen