2014-05-19 13 views
6

Ho già chiesto di scoprire la soluzione di questo problema, ma non riesco a ottenere una buona risposta per me. Quindi sto cercando di scrivere una domanda più in dettaglio.java.lang.RuntimeException: impossibile creare un'istanza dell'applicazione, java.lang.ClassNotFoundException:

L'errore di seguito si verifica a volte per alcuni utenti. Non l'ho visto attraverso diversi telefoni Android che ho per testare, ma ho avuto questa cotta tramite la console per sviluppatori Google all'incirca una volta alla settimana :(

Ho provato a scoprire per risolvere questo problema per un lungo tempo Alcuni dicono che potrebbe essere dovuto a una scheda SD esterna o roba di Singletone

Inoltre, nella domanda precedente, un ragazzo riconoscente ha detto che dovrei controllare l'attributo 'nome' del tag Applcation in AndroidManifest.xml Ma ho già inserito il nome del pacchetto, quindi non penso che sia la causa della cotta

Ho testato un scheda SD esterna che ho installato la mia app su una scheda SD esterna e quindi smontata. Ma non potrei ri-produrre.

E sulla roba di Singletone, la mia app non usa un'istanza della classe di applicazione personalizzata in nessun luogo. Quindi penso che la roba di Singletone non possa essere la causa di questo problema.

Anche io non so come ri-produrre la cotta, quindi ho davvero bisogno di un documento o di materiale pubblico su di esso.

Sono sicuro che c'è qualcuno che ha ricevuto questo errore e sa già come risolvere. Quindi, per favore aiutami a capire cosa c'è che non va e come posso risolverlo. Buona giornata, grazie.

Errore:

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

perché "si estende Application"? Prova "estende l'attività" – Fraggles

+0

@Fraggles Il motivo per cui utilizzo "estende l'applicazione" è perché avviare contenuti globali. Non è una classe per attività –

+0

Stai usando un file jar esterno? –

risposta

0

Sembra essere le tue classi binarie non sono disponibili nel percorso della classe. Verifica il percorso della classe binaria dell'applicazione e controlla la disponibilità di quel percorso.

+0

Uso lo strumento Eclipse, quindi in realtà non mi importava. Quindi, se non ti dispiace, potresti dirmi come controllare cosa intendevi? –

2

Questo è causato da problemi sul dispositivo che è fuori dal vostro controllo. Anche io ricevo report simili nella console di sviluppo, ma dopo una ricerca approfondita ho concluso che non è possibile evitare questo crash da parte tua utilizzando qualsiasi mezzo convenzionale perché non è causato da alcun errore nella tua app ma da un errore nel sistema dell'utente. Non è possibile controllare il sistema dell'utente e molti arresti anomali causati da un comportamento imprevisto del sistema non possono essere "corretti", non dagli sviluppatori di app.

+1

Come spiegare questo ai clienti? : P –

Problemi correlati