애플리케이션 com.android.tools.fd.runtime.BootstrapApplication을 인스턴스화 할 수 없습니까?


140

Android Studio를 버전 2.0으로 업데이트했습니다. 하지만 문제가 있었는데 왜 그런지 모르겠습니다.

중요한 오류 정보 :

애플리케이션 com.android.tools.fd.runtime.BootstrapApplication을 인스턴스화 할 수 없습니다. java.lang.IllegalStateException : java.lang.ClassNotFoundException : com.eallcn.rentagent.MyDebugEallApplication

오랫동안 검색했지만 링크를 볼 수있는 정답을 찾지 못했습니다

File-> Project structure를 클릭하면 동시에이 오류가 표시됩니다.

여기에 이미지 설명을 입력하십시오

라이브러리 어딘가에 문제가 있습니까? gradle이 프로그램을 빌드 할 때 libs는 현재 프로그램에 대해 완전히로드되지 않았습니다. Android Studio 버전 2.0에 문제가 있습니까?

Android studio 1.4.0을 사용하여 프로그램을 빌드하고 실행할 때. 그것은 나를 위해 잘 작동합니다! 그러나 Android Studio 2.0을 사용하면 문제가 나타납니다!

왜? 도와 주실 래요?

자세한 오류 로그는 다음과 같습니다.

11-28 11 : 57 : 00.489 19890-19890 / com.eallcn.rentagent.debug E / AndroidRuntime : 치명적 예외 : 기본 프로세스 : com.eallcn.rentagent.debug, PID : 19890 java.lang.RuntimeException : 응용 프로그램을 인스턴스화 할 수 없습니다 com.android.tools.fd.runtime.BootstrapApplication : java.lang.IllegalStateException : java.lang.ClassNotFoundException : com.eallcn.rentagent.MyDebugEallApplication at android.app.LoadedApk.makeApplication (LoadedApk.java:537) android.app에서 .ActivityThread.handleBindApplication (ActivityThread.java:4586) android.app.ActivityThread.access에서 $ 1800 (ActivityThread.java:139)
android.app.ActivityThread $ H.handleMessage에서 (ActivityThread.java:1316)
java.lang의 android.app.ActivityThread.main (ActivityThread.java:5314)의 android.os.Looper.loop (Looper.java:136)
의 android.os.Handler.dispatchMessage (Handler.java:102
)
에서 java.lang의 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (com의 jygoteInit.java:864)의
java.lang.reflect.Method.invoke (Method.java:515)의 reflect.Method.invokeNative (Native Method) dalvik.system.NativeStart.main (Native Method)의
android.internal.os.ZygoteInit.main (ZygoteInit.java:680) 원인 : java.lang.IllegalStateException : java.lang.ClassNotFoundException : com.eallcn.rentagent.MyDebugEallApplication


com.android.tools.fd.runtime.BootstrapApplication.createRealApplication (BootstrapApplication.java:167)에서 com.android.tools.fd.runtime.BootstrapApplication.attachBaseContext (BootstrapApplication.java:179)에서 android.app.Application.attach에서 android.app.LoadedApk.makeApplication (LoadedApk.java :
android.app.Instrumentation.newApplication (Instrumentation.java:976)
의 android.app.Instrumentation.newApplication (Instrumentation.java:992)의 (Application.java:194)
: 532)
android.app.ActivityThread.access $ 1800 (ActivityThread.java:139)에서 android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1316)에서 android.app.ActivityThread.handleBindApplication (ActivityThread.java:4586) android.app의 android.os.Looper.loop (Looper.java:136)의 .os.Handler.dispatchMessage (Handler.java:102)java.lang.reflect.Method.invokeNative (Native Method) at java.lang.reflect.Method.invoke (Method.java:515)의 ActivityThread.main (ActivityThread.java:5314) com.android.internal.os. dalvik.system.NativeStart의 com.android.internal.os.ZygoteInit.main (ZygoteInit.java:680)의 ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:864).main (기본 메소드) 원인 : java.lang.ClassNotFoundException : java.lang.Class.classForName (네이티브 메소드) java.lang.Class.forName (java)의 com.eallcn.rentagent.MyDebugEallApplication com.android.tools.fd.runtime.BootstrapApplication.createRealApplication (BootstrapApplication.java의 .lang.Class.forName (Class.java:216) :155) com.android.tools.fd.runtime.bootstrapApplication.attachBaseContext (BootstrapApplication.java:179) android.app.Application.attach (Application.java:194) android.app.Instrumentation.newApplication (Instrumentation.java)에서 android.app.LoadedApk의 android.app.Instrumentation.newApplication (Instrumentation.java:976)에서 : 992).android.app.ActivityThread.handleBindApplication (ActivityThread.java:4586)에서 android.app.ActivityThread.access $ 1800 (ActivityThread.java:139)의 makeApplication (LoadedApk.java:532) android.app.ActivityThread $ H.handleMessage ( android.os.Looper의 android.os.Handler.dispatchMessage (Handler.java:102)의 ActivityThread.java:1316)java.lang.reflect.Method.invokeNative (Native Method)의 java.lang.reflect.Method.invoke (Method.의 android.app.ActivityThread.main (ActivityThread.java:5314)의 루프 (Looper.java:136) com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:864)의 com.android.internal.os.ZygoteInit.main (ZygoteInit.java :680) at dalvik.system.NativeStart.main (기본 메소드) 원인 : java.lang.NoClassDefFoundError : java.lang.Class.forName의 java.lang.Class.classForName (네이티브 메소드)의 com / eallcn / rentagent / MyDebugEallApplication java.lang.Class.forName (Class.java의 (Class.java:251) :216) com.android.tools.fd.runtime.BootstrapApplication.createRealApplication (BootstrapApplication.java:155) com.android.tools.fd.runtime.BootstrapApplication.attachBaseContext (BootstrapApplication.java:179) android.app.Application에서 android.app.Instrumentation.newApplication (Instrumentation.java에서 .attach (Application.java:194) :992) android.app.Instrumentation.newApplication (Instrumentation.java:976)에서 android.app.LoadedApk.makeApplication (LoadedApk.java:532) at android.app.ActivityThread.handleBindApplication (ActivityThread.java:4586)에서 android. android.app.ActivityThread $ H에서 app.ActivityThread.access $ 1800 (ActivityThread.java:139)android.os.Handler.dispatchMessage (Handler.java:102)에서 android.os.Looper.loop (Looper.java:136)에서 android.app.ActivityThread.main (ActivityThread.java에서 handleMessage (ActivityThread.java:1316) : 5314) java.lang.reflect.Method.invokeNative (Native Method) at java.lang.reflect.Method.invoke (Method.java :515) com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:864) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:680) dalvik.system.NativeStart.main에서 (기본 메소드) 원인 : java.lang.ClassNotFoundException : 다음 경로에서 "com.eallcn.rentagent.MyDebugEallApplication"클래스를 찾지 못했습니다 : DexPathList [[zip 파일 "/data/app/com.eallcn.rentagent.debug-1 .apk "],dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56의 nativeLibraryDirectories = [/ data / app-lib / com.eallcn.rentagent.debug-1, / vendor / lib, / system / lib, / data / datalib]]] ) java.lang.ClassLoader.loadClass (ClassLoader.java:497) at java.lang.ClassLoader.loadClass (ClassLoader.java:457) at java.lang.Class.com.android.tools.fd.runtime.BootstrapApplication.createRealApplication의 java.lang.Class.forName (Class.java:216)의 java.lang.Class.forName (Class.java:251)의 classForName (기본 메소드) com.android.tools.fd.runtime.BootstrapApplication.attachBaseContext (BootstrapApplication.java:179)의 android.app에있는 BootstrapApplication.java:155).android.app.Instrumentation.newApplication (Instrumentation.java:992)의 android.app.Instrumentation.newApplication (Instrumentation.java:976)에서 android.app.LoadedApk.makeApplication (LoadedApk)의 Application.attach (Application.java:194) android.app의 android.app.ActivityThread.handleBindApplication (ActivityThread.java:4586)의 .java : 532)android.os.Looper에서 android.os.Handler.dispatchMessage (Handler.java:102)의 android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1316)의 ActivityThread.access $ 1800 (ActivityThread.java:139) java.lang.reflect.Method의 android.app.ActivityThread.main (ActivityThread.java:5314)의 루프 (Looper.java:136)com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:864)의 java.lang.reflect.Method.invoke (Method.java:515)의 invokeNative (Native Method)는 com.android.internal의 dalvik.system.NativeStart.main (네이티브 메소드)의 os.ZygoteInit.main (ZygoteInit.java:680)515) com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:864) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:680) dalvik.system.NativeStart.main에서 (기본 방법)515) com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:864) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:680) dalvik.system.NativeStart.main에서 (기본 방법)680) dalvik.system.NativeStart.main (Native Method)에서680) dalvik.system.NativeStart.main (Native Method)에서

 


나는이 질문이라고 생각합니다 : 그것은 단지 안드로이드 스튜디오 2.0에 관한 것이고 gradle 버전은 호환되지 않습니다!
GeekHades

이 답변 은 문제를 해결할 것입니다
Amit Vaghela

답변:


313

Android Studio에서 즉시 실행 옵션을 비활성화하십시오. 지침은 Android Studio Instant Run 설명서에 있습니다.

Instant Run은 코드의 핫 스왑을 시도합니다. 이로 인해 응용 프로그램 클래스가 이동합니다.

인스턴트 실행을 비활성화하려면 파일-> 설정-> 빌드, 실행, 배포-> 인스턴트 실행 ---> "인스턴트 실행 활성화"를 선택 취소하십시오.


10
이것은 단지 마시멜로 장치에서 나에게 일어났다
Jon

37
IDE의 주요 기능비활성화 하는 것이 좋은 해결책 이 아니라고 생각하는 유일한 사람 입니까? Studio 1.4 사용 과 같습니다 . 공감.
natario

17
@mvai : 이상적인 솔루션은 아니지만 사용 가능한 최상의 솔루션 일 수 있습니다. Instant Run으로 인해 문제가 발생한 경우이를 알고이를 때때로 비활성화 할 수있는 것이 매우 중요합니다. 이 답변을 내리는 것은 매복이 당신을 기다리고 있기 때문에 가장 짧은 경로를 집으로 가지 말라고 전한 메신저를 쏘는 것과 같습니다.
LarsH

3
@mvai : 알겠습니다. 대답을 개선하기 위해 그런 일을 할 수있을 것입니다. 그러나 downvoting은 "이 답변은 더 나을 수 있습니다"가 아니라 "이 답변은 유용하지 않습니다"입니다. 이 답변은 매우 유용합니다. 답을 향상시킬 것으로 생각되는 세부 사항을 자유롭게 추가하십시오. 여기 또는 자신의 답변으로.
LarsH

2
이것은 슬픈 답변이지만 Instant Run이 너무 깨져서 유일한 해결책입니다.
clu

22

2.0을 사용하려고 시도한 후에도 같은 오류가 발생했습니다.

나는 gradle 변경 사항을 되돌려 서 해결했습니다.

1/3 :

바꾸다:

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

으로:

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

2/3 :

바꾸다:

buildToolsVersion '23.0.2'

으로:

buildToolsVersion "21.1.2"

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

과:

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

으로:

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

어떤 줄이 오류의 근원인지 정확히 알지 못하지만이 세 가지 변경 사항으로 해결되었습니다.

그것이 도움이되기를 바랍니다 :)


세 번째 단계 : <option name = "gradleHome"value = "$ APPLICATION_HOME_DIR $ / gradle / gradle-2.4"/> 어디에서 찾을 수 있습니까? 변경하고 싶습니다. 코드를 찾을 수 있습니다!
GeekHades

안녕, 편집 답변을 참조하십시오. ( <project folder>/.idea/gradle.xml)
emmgfx

처음 2 단계는 나를 위해 고치는 것처럼 보였습니다.
Marc

무엇입니까 option name="gradleHome"? 그 위치는 어디입니까?
IgorGanapolsky

1
응용 프로그램 빌드 gradle에 aaptOptions.setProperty ( "cruncherEnabled", false)가 있으면 제거하는 것이 좋습니다. 한 가지 더
확실한

17

나는 같은 오류가 있었다.

프로젝트를 정리하여 해결했습니다 (Build> Clean Project)


3
과소 평가!
Anup

이것은 나에게 정답입니다. Android 스튜디오를 사용하지 않고 문제가 발생하여 동일한 작업을 수행하는 gradle clean 및 gradle assembleDebug를 실행했습니다.
Shawn


5

gradle-wrapper.properties를로 업데이트 gradle-2.14.1-all하고 프로젝트를 정리 / 재 구축 하여이 오류를 제거 할 수있었습니다 . 그런 다음 괜찮 았습니다. 다른 답변은 필요하지 않습니다 (위의 답변에서 제안한대로) ...


1
사용하고 com.android.tools.build:gradle:2.0.0-alpha1있습니까? com.android.tools.build:gradle:2.0.0-alpha6+로 업그레이드 한 후에도 오류가 계속 발생합니다.https\://services.gradle.org/distributions/gradle-2.10-all.zip
Liuting

1
예, Android Studio Preview 5로 업그레이드했습니다. 즉석 실행을 위해 gradle 버전을 업그레이드해야한다고 말합니다. 버그 수정을 위해 꽤 자주 알파 릴리스를하고있는 것 같습니다.
Liuting

1
고객의 프로젝트 / 자신의 제품을 작업하는 경우 '알파'또는 '베타'빌드를 사용하는 것이 좋습니다. 대신 하나 또는 두 개의 다운 버전을 사용하십시오 ... 원인 안정 버전이 아닙니다. 그리고 버그 수정 및 개선을 위해 불안정한 빌드를 테스트하는 경우 통조림 채널의 안드로이드 스튜디오조차도 프로세스에서 더 많은 도움을 줄 수 있습니다.
Bhuro

4

로 변경

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

해결 된 문제


3

안정적인 채널의 Android 2.0 에서도이 오류가 발생했습니다.

제가 한?
-장치에 최신 앱을 실행하여 교체하려고했던 장치에 이전 버전의 앱이 이미 설치되어 있습니다 (이전 버전의 Studio를 사용하여 빌드 됨).
새 앱을 실행하기 전에 이전 버전을 완전히 제거하고 트릭이 작동했습니다.


2

최신 gradle 플러그인 버전으로 classPath를 업데이트하려는 경우 최신 플러그인 버전을 어디에서 찾을 수 있습니까?

http://tools.android.com/tech-docs/new-build-system 에서 체크인하고 classPath를 업데이트하십시오. 현재 최신 버전은

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

항상 최신 플러그인 버전으로 빌드하십시오.


2

인스턴트 실행을 비활성화하지 않으려면 프로젝트를 정리하고 다시 실행하십시오.


2

내 문제 classpath 'com.android.tools.build:gradle:2.1.2'classpath 'com.android.tools.build:gradle:2.1.0'해결 하기 위해 변경하십시오 .


2

나는 또한 같은 문제에 직면하여 그것을 해결했다. 내 경우에는 전역 클래스 (애플리케이션 컨텍스트 클래스 전체)의 실수로 인해 내 실수는 AndroidManifest.xmlApplication 클래스 VolleyHelper를 다음과 같이 선언 했습니다.

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

하지만 VolleyHelper.java나는 기본 생성자가 없습니다. 그래서 VolleyHelper.java(Application Class) 에 기본 생성자를 추가했습니다 .


1

디버그 할 때 덱스를 만들지 않도록 이것을 gradle에 추가 할 수도 있습니다

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

OS 5.0 이전 버전의 일부 Android 장치에서는 오류 메시지가 나타납니다.

원인 : java.lang.ClassNotFoundException : "com.android.tools.fd.runtime.BootstrapApplication 클래스를 찾지 못했습니다.

"Instant Run"을 비활성화해야합니다.

로 이동 File> Settings> Built, Execution, Deployment>Instant Run

그런 다음 옵션을 비활성화하십시오 Enable Instant Run to hot swap code.

여기에 이미지 설명을 입력하십시오


1

방금 장치를 재부팅해야했습니다. 불행히도 시간을 낭비하면서 다른 모든 것을 먼저 시도했습니다.


1

공유하는 경우 다른 해결책은

이동 Android Studio --> Build --> Build APK

팝업이 나타납니다 APK generated successfully. Show in Explorer생성 된 apk 폴더로 이동합니다.


1

"즉시 실행"을 비활성화 할 필요가 없습니다.
1. 프로젝트의 루트 사용하여 파일 탐색기로 이동
2. 마침 안드로이드 스튜디오 (AS)
3. 삭제 (재배치 곳) ".gradle"의 폴더 내용
(일부 cashs 오래된 유물 청소)
4. 고해상도의 모든 부적절 닦아 폴더를 파일
5. AS를 다시 시작하십시오
6. 모듈의 build.gradle에서 "buildTypes {debug {minifyEnabled true"를 false로 설정하십시오
(오류가 내 proguard 파일 인 kek에 있는 것 같습니다)

동기화, 컴파일 및 앱 다시 실행 : /



-1

방금 Android Studio를 최신 버전 (2.0 Beta 5)으로 업데이트합니다. 그것은 그 자체로 바뀌고 classpath 'com.android.tools.build:gradle:2.0.0-beta5'매력처럼 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.