Nie można utworzyć wystąpienia aplikacji com.android.tools.fd.runtime.BootstrapApplication? Android


140

Zaktualizowałem Android Studio do wersji 2.0. Ale miałem problem, nie wiem dlaczego?

Ważne informacje o błędzie:

Nie można utworzyć wystąpienia aplikacji com.android.tools.fd.runtime.BootstrapApplication: java.lang.IllegalStateException: java.lang.ClassNotFoundException: com.eallcn.rentagent.MyDebugEallApplication

Szukałem długo, ale nie znalazłem właściwej odpowiedzi, możesz zobaczyć link

W tym samym czasie, gdy klikam Plik-> Struktura projektu, pokazuje ten błąd:

wprowadź opis obrazu tutaj

Czy jest jakiś problem w bibliotekach? Kiedy gradle buduje program, biblioteki nie załadowały się całkowicie dla bieżącego programu. Czy jest jakiś problem z Android Studio w wersji 2.0?

Kiedy używam Android Studio 1.4.0 do budowania i uruchamiania programu. U mnie działa dobrze! Ale kiedy używam Android Studio 2.0, pojawia się problem!

Czemu? Proszę, mógłbyś mi pomóc?

Oto szczegółowy dziennik błędów:

11-28 11: 57: 00.489 19890-19890 / com.eallcn.rentagent.debug E / AndroidRuntime: FATAL EXCEPTION: main Process: com.eallcn.rentagent.debug, PID: 19890 java.lang.RuntimeException: Nie można utworzyć instancji aplikacji com.android.tools.fd.runtime.BootstrapApplication: java.lang.IllegalStateException: java.lang.ClassNotFoundException: com.eallcn.rentagent.MyDebugEallApplication pod adresem android.app.LoadedApk.makeApplication (LoadedAva:537) .ActivityThread.handleBindApplication (ActivityThread.java:4586) na android.app.ActivityThread.access $ 1800 (ActivityThread.java:139)
na android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1316)
na android.os.Handler.dispatchMessage (Handler.java:102)
pod adresem android.os.Looper.loop (Looper.java:136)
pod adresem android.app.ActivityThread.main (ActivityThread.java:5314)
pod adresem java.lang. Reflect.Method.invokeNative (metoda natywna)
w java.lang.reflect.Method.invoke (Method.java:515)
w com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:864) w com. android.internal.os.ZygoteInit.main (ZygoteInit.java:680)
at dalvik.system.NativeStart.main (metoda macierzysta)
Przyczyna: java.lang.IllegalStateException: java.lang.ClassNotFoundException: com.eallcn.rentagent.MyDebugEallApplication
at com.android.tools.fd.runtime.BootstrapApplication.createRealApplication (BootstrapApplication.java:167) pod adresem com.android.tools.fd.runtime.BootstrapApplication.attachBaseContext (BootstrapApplication.java:167) pod adresem com.android.tools.fd.runtime.BootstrapApplication.attachBaseContext (BootstrapApplication.java.java:179) (Application.java:194)
pod adresem android.app.Instrumentation.newApplication (Instrumentation.java:992)
pod adresem android.app.Instrumentation.newApplication (Instrumentation.java:976)
pod adresem android.app.LoadedApk.makeApplication (LoadedApk.java: 532)
na android.app.ActivityThread.handleBindApplication (ActivityThread.java:4586) na android.app.ActivityThread.access $ 1800 (ActivityThread.java:139) na android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1316) na Android .os.Handler.dispatchMessage (Handler.java:102) na android.os.Looper.loop (Looper.java:136) na android.app.ActivityThread.main (ActivityThread.java:5314) na java.lang.reflect.Method.invokeNative (metoda macierzysta) na java.lang.reflect.Method.invoke (Method.java:515) na com.android.internal.os. ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:864) w com.android.internal.os.ZygoteInit.main (ZygoteInit.java:680) w dalvik.system.NativeStart.main (Metoda rodzima) Przyczyna: java.lang.ClassNotFoundException: com.eallcn.rentagent.MyDebugEallApplication at java.lang.Class.classForName (metoda natywna) w java.lang.Class.forName (Class.java:251) w java .lang.Class.forName (Class.java:216) w com.android.tools.fd.runtime.BootstrapApplication.createRealApplication (BootstrapApplication.java:155) pod adresem com.android.tools.fd.runtime.BootstrapApplication.attachBaseContext (BootstrapApplication.java:179) pod adresem android.app.Application.attach (Application.java:194) pod adresem android.app.Instrumentation.newApplication (Instrumentation.java : 992) pod adresem android.app.Instrumentation.newApplication (Instrumentation.java:976) pod adresem android.app.LoadedApk.makeApplication (LoadedApk.java:532) w android.app.ActivityThread.handleBindApplication (ActivityThread.java:4586) pod adresem android.app.ActivityThread.access $ 1800 (ActivityThread.java:139) w android.app.ActivityThread $ H.handleMessage ( ActivityThread.java:1316) na android.os.Handler.dispatchMessage (Handler.java:102) na android.os.Looper.loop (Looper.java:136) pod adresem android.app.ActivityThread.main (ActivityThread.java:5314) pod adresem java.lang.reflect.Method.invokeNative (metoda natywna) pod adresem java.lang.reflect.Method.invoke (Method. java: 515) pod adresem com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:864) pod adresem com.android.internal.os.ZygoteInit.main (ZygoteInit.java:680) w dalvik.system.NativeStart.main (metoda rodzima) Przyczyna: java.lang.NoClassDefFoundError: com / eallcn / rentagent / MyDebugEallApplication pod adresem java.lang.Class.classForName (metoda rodzima) pod adresem java.lang.Class.forName (Class.java:251) pod adresem java.lang.Class.forName (Class.java:216) pod adresem com.android.tools.fd.runtime.BootstrapApplication.createRealApplication (BootstrapApplication.java:155) pod adresem com.android.tools.fd.runtime.BootstrapApplication.attachBaseContext (BootstrapApplication.java:155) pod adresem com.android.tools.fd.runtime.BootstrapApplication.attachBaseContext (BootstrapApplication.java:179) .attach (Application.java:194) pod adresem android.app.Instrumentation.newApplication (Instrumentation.java:992) pod adresem android.app.Instrumentation.newApplication (Instrumentation.java:976) pod adresem android.app.LoadedApk.makeApplication (LoadedApk.java:532) pod adresem android.app.ActivityThread.handleBindApplication (ActivityThread.java:4586) w systemie Android. app.ActivityThread.access 1800 $ (ActivityThread.java:139) na android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1316) na android.os.Handler.dispatchMessage (Handler.java:102) pod adresem android.os.Looper.loop (Looper.java:136) pod adresem android.app.ActivityThread.main (ActivityThread.java : 5314) pod adresem java.lang.reflect.Method.invokeNative (metoda rodzima) pod adresem java.lang.reflect.Method.invoke (Method.java:515) pod adresem com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:864) pod adresem com.android.internal.os.ZygoteInit.main (ZygoteInit.java:680) w dalvik.system.NativeStart.main (Metoda macierzysta) Przyczyna: java.lang.ClassNotFoundException: Nie znaleziono klasy „com.eallcn.rentagent.MyDebugEallApplication” w ścieżce: DexPathList [[plik zip "/data/app/com.eallcn.rentagent.debug-1 .apk ”],nativeLibraryDirectories = [/ data / app-lib / com.eallcn.rentagent.debug-1, / vendor / lib, / system / lib, / data / datalib]] w dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56 ) pod adresem java.lang.ClassLoader.loadClass (ClassLoader.java:497) pod adresem java.lang.ClassLoader.loadClass (ClassLoader.java:457) pod adresem java.lang.Class.classForName (metoda natywna) w java.lang.Class.forName (Class.java:251) w java.lang.Class.forName (Class.java:216) w com.android.tools.fd.runtime.BootstrapApplication.createRealApplication ( BootstrapApplication.java:155) pod adresem com.android.tools.fd.runtime.BootstrapApplication.attachBaseContext (BootstrapApplication.java:179) pod adresem android.app.Application.attach (Application.java:194) pod adresem android.app.Instrumentation.newApplication (Instrumentation.java:992) pod adresem android.app.Instrumentation.newApplication (Instrumentation.java:976) pod adresem android.app.LoadedApk.makeApplication (LoadedApk .java: 532) pod adresem android.app.ActivityThread.handleBindApplication (ActivityThread.java:4586) pod adresem android.app.ActivityThread.access $ 1800 (ActivityThread.java:139) na android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1316) pod adresem android.os.Handler.dispatchMessage (Handler.java:102) na android.os.Looper. loop (Looper.java:136) pod adresem android.app.ActivityThread.main (ActivityThread.java:5314) pod adresem java.lang.reflect.Method.invokeNative (metoda natywna) w java.lang.reflect.Method.invoke (Method.java:515) w com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:864) w com.android.internal. os.ZygoteInit.main (ZygoteInit.java:680) at dalvik.system.NativeStart.main (metoda rodzima)515) pod adresem com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:864) pod adresem com.android.internal.os.ZygoteInit.main (ZygoteInit.java:680) w dalvik.system.NativeStart.main (Metoda natywna)515) pod adresem com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:864) pod adresem com.android.internal.os.ZygoteInit.main (ZygoteInit.java:680) w dalvik.system.NativeStart.main (Metoda natywna)680) w dalvik.system.NativeStart.main (metoda macierzysta)680) w dalvik.system.NativeStart.main (metoda macierzysta)

 


Myślę, że to pytanie brzmi: chodzi tylko o Android Studio 2.0, a wersja Gradle nie jest kompatybilna!
GeekHades

ta odpowiedź rozwiąże Twój problem
Amit Vaghela

Odpowiedzi:


313

Wyłącz opcję Instant Run w Android Studio. Instrukcje znajdują się w dokumentacji Android Studio Instant Run .

Natychmiastowe uruchamianie próbuje wykonać gorącą wymianę kodu; powoduje to przeniesienie klasy aplikacji.

Aby wyłączyć natychmiastowe uruchamianie, przejdź do Plik -> Ustawienia -> Kompilacja, wykonanie, wdrożenie -> Natychmiastowe uruchamianie ---> odznacz „Włącz natychmiastowe uruchamianie”


10
To właśnie zdarzyło mi się na urządzeniu Marshmallow
Jon

37
Czy jestem jedynym, który uważa, że wyłączenie to główną cechą IDE to nie rozwiązanie dobre? To tak, jakby powiedzieć, że użyj Studio 1.4 . Głosowano w dół.
natario

17
@mvai: To nie jest idealne rozwiązanie, ale może być najlepszym dostępnym rozwiązaniem. Jeśli problem jest spowodowany przez Instant Run, wiedza o tym i możliwość jego wyłączenia jest niezwykle cenna. Downvoting tę odpowiedź jest jak strzelanie do posłańca, który powiedział, że nie skorzystać z najkrótszej trasy do domu, ponieważ nie była zasadzka czeka na ciebie ..
LarsH

3
@mvai: OK, te rzeczy można by prawdopodobnie zrobić, aby poprawić odpowiedź (chociaż 4 z 5 wydają się oczywiste). Ale głosowanie w dół nie dotyczy „tej odpowiedzi mogłaby być jeszcze lepsza”, ale „ta odpowiedź jest nieprzydatna”. Tymczasem ta odpowiedź jest bardzo przydatna. Możesz dodać szczegóły, które Twoim zdaniem poprawiłyby odpowiedź; albo tutaj, albo na własną odpowiedź.
LarsH,

2
To smutna odpowiedź, ale ponieważ Instant Run jest tak zepsuty, jest to jedyne poprawne rozwiązanie.
clu

22

Miałem ten sam błąd po próbie użycia 2.0.

Rozwiązałem to, cofając niektóre zmiany stopni:

1/3:

Wymiana pieniędzy:

classpath 'com.android.tools.build:gradle:2.0.0-alpha1'

Przez:

classpath 'com.android.tools.build:gradle:1.2.3'

2/3:

Wymiana pieniędzy:

buildToolsVersion '23.0.2'

Przez:

buildToolsVersion "21.1.2"

3/3: ( cal<project folder>/.idea/gradle.xml )

I:

<option name="gradleHome" value="$APPLICATION_HOME_DIR$/gradle/gradle-2.8" />

Przez:

<option name="gradleHome" value="$APPLICATION_HOME_DIR$/gradle/gradle-2.4" />

Nie wiem, która linia jest dokładnie źródłem błędu, ale dzięki tym trzem zmianom został on rozwiązany.

Mam nadzieję, że to ci pomoże :)


Trzeci krok: <option name = "gradleHome" value = "$ APPLICATION_HOME_DIR $ / gradle / gradle-2.4" /> gdzie mogę znaleźć, chcę zmienić. Mogę znaleźć kod!
GeekHades

Cześć, zobacz zredagowaną odpowiedź. ( <project folder>/.idea/gradle.xml)
emmgfx

pierwsze 2 kroki zdawały się to naprawić.
Marc

Co to jest option name="gradleHome"? Gdzie to się znajduje.
Igor Ganapolsky

1
Jeśli masz w swojej kompilacji aplikacji gradle: aaptOptions.setProperty ("cruncherEnabled", false), lepiej go usunąć. I jeszcze jedna rzecz NIE używaj natychmiastowego uruchamiania, dopóki nie będzie w pełni stabilny, stwarza wiele problemów
Stoycho Andreev

17

Miałem ten sam błąd.

Rozwiązałem to, czyszcząc projekt (Kompiluj> Wyczyść projekt)


3
niedoceniana odpowiedź!
Anup

Wydaje mi się, że to jest dla mnie poprawna odpowiedź. Pojawiał się problem bez korzystania z Android Studio, więc po prostu uruchomiłem gradle clean i gradle assembleDebug, który robi to samo.
Shawn


5

Udało mi się pozbyć tego błędu, aktualizując gradle-wrapper.properties do gradle-2.14.1-alli czyszcząc / przebudowując projekt. Wtedy wszystko poszło dobrze. Żadne inne zmiany nie były potrzebne (jak sugerowano w powyższej odpowiedzi) ...


1
Czy używasz com.android.tools.build:gradle:2.0.0-alpha1? Błąd nadal występuje po uaktualnieniu do com.android.tools.build:gradle:2.0.0-alpha6+https\://services.gradle.org/distributions/gradle-2.10-all.zip
Liuting

1
Tak, zaktualizowałem do Android Studio Preview 5, jest napisane, że muszę uaktualnić wersję Gradle, aby natychmiast uruchomić. Wygląda na to, że wydają dość częste wydania alfa dla poprawek błędów ...
Liuting

1
Jeśli pracujesz nad projektem Klienta / własnym produktem, nie sugeruje się użycia wersji „alfa” lub „beta”; zamiast tego spróbuj użyć jednej lub dwóch starszych wersji ... Ponieważ nie są one stabilne. A jeśli
testujesz

4

Zmiana na

classpath 'com.android.tools.build:gradle:2.0.0-alpha6'

naprawiony problem


3

Ten błąd też otrzymałem z Androidem 2.0 w stabilnym kanale.

Co ja zrobiłem?
- Miałem już zainstalowaną starszą wersję aplikacji na urządzeniu (która została zbudowana przy użyciu starszej wersji Studio), którą próbowałem zastąpić, uruchamiając nowszą aplikację na urządzeniu.
Właśnie całkowicie odinstalowałem starszą wersję przed uruchomieniem nowej aplikacji i sztuczka zadziałała.


2

Tylko dla tych, którzy chcą zaktualizować classPath do najnowszej wersji wtyczki Gradle. Gdzie znaleźć najnowszą wersję wtyczki?

Sprawdź http://tools.android.com/tech-docs/new-build-system i zaktualizuj swoją classPath. Obecnie jest to najnowszy

 classpath 'com.android.tools.build:gradle:2.0.0'.

Zawsze staraj się budować z najnowszą wersją wtyczki.


2

Jeśli nie chcesz wyłączać funkcji Instant Run, po prostu wyczyść projekt i uruchom go ponownie.


2

Zmień, classpath 'com.android.tools.build:gradle:2.1.2'aby classpath 'com.android.tools.build:gradle:2.1.0'rozwiązać mój problem.


2

Ja też stanąłem przed tym samym problemem i rozwiązałem go. W moim przypadku był to błąd w klasie globalnej (klasa kontekstu całej aplikacji), mój błąd polegał na AndroidManifest.xmlzadeklarowaniu klasy Application VolleyHelperjako: -

 <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true" android:name=".VolleyHelper"
        android:theme="@style/AppTheme"> 

ale w VolleyHelper.javanie mam domyślnego konstruktora. Więc dodałem domyślny konstruktor w VolleyHelper.java(Klasa aplikacji).


1

możesz również dodać to do swojego gradle, aby zapobiec robieniu dex podczas debugowania

debug {
    // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
    // to pre-dex each module and produce an APK that can be tested on
    // Android Lollipop without time consuming dex merging processes.
    minSdkVersion 21
}

1

Na niektórych urządzeniach z Androidem w wersjach wcześniejszych niż OS 5.0 otrzymujemy komunikat o błędzie:

Przyczyna: java.lang.ClassNotFoundException: Nie znaleziono klasy „com.android.tools.fd.runtime.BootstrapApplication

Musimy wyłączyć „Natychmiastowe uruchamianie”.

Idź do File> Settings> Built, Execution, Deployment>Instant Run

Następnie wyłącz opcję Enable Instant Run to hot swap code.

wprowadź opis obrazu tutaj


1

Musiałem tylko zrestartować moje urządzenie. Próbowałem wszystkiego innego na początku niestety, więc straciłem godziny.


1

Jeśli udostępniasz swoją aplikację, innym rozwiązaniem jest

iść do Android Studio --> Build --> Build APK

Pojawi się wyskakujące okienko APK generated successfully. Show in Explorerprzeniesie Cię do wygenerowanego folderu apk.


1

Nie ma potrzeby wyłączania „natychmiastowego uruchamiania”.
1. przejdź do katalogu głównego projektu za pomocą Eksploratora plików
2. Zakończ Android Studio (AS)
3. Usuń (przenieś gdzieś) zawartość folderu ".gradle"
(aby wyczyścić trochę gotówki i stare artefakty)
4. w folderze res wyczyść wszystkie nieodpowiednie pliki
5. ponownie uruchom AS
6. w module build.gradle ustaw "buildTypes {debug {minifyEnabled true" na false
(wygląda na to, że błąd był w moim pliku proguard, kek)

Zsynchronizuj, skompiluj i ponownie uruchom aplikację: /



-1

Właśnie aktualizuję Android Studio do ostatniej wersji (2.0 Beta 5). Zmienia się classpath 'com.android.tools.build:gradle:2.0.0-beta5'i działa jak urok.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.