无法实例化应用程序com.android.tools.fd.runtime.BootstrapApplication?Android


140

我将Android Studio更新到了2.0版。但是我有一个问题,我不知道为什么?

重要错误信息:

无法实例化应用程序com.android.tools.fd.runtime.BootstrapApplication:java.lang.IllegalStateException:java.lang.ClassNotFoundException:com.eallcn.rentagent.MyDebugEallApplication

我搜索了很长时间,但是找不到正确的答案,您可以看到链接

同时单击“ 文件”->“项目结构”时 显示此错误:

在此处输入图片说明

库中的某个地方有问题吗?在gradle构建程序时,库没有为当前程序完全加载。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)
在android.os.Handler.dispatchMessage(Handler.java:102)
在android.os.Looper.loop(Looper.java:136)
在android.app.ActivityThread.main(ActivityThread.java:5314)
在java.lang中。 com 处com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:864)处
java.lang.reflect.Method.invoke(Method.java:515)
处的reflect.Method.invokeNative(本机方法)。
dalvik.system.NativeStart.main(本地方法)处的android.internal.os.ZygoteInit.main(ZygoteInit.java:680)原因
:java.lang.IllegalStateException:java.lang.ClassNotFoundException:com.eallcn.rentagent.MyDebugEallApplication
在com.android.tools.fd.runtime.BootstrapApplication.java中的com.android.tools.fd.runtime.BootstrapApplication.attachBaseContext(BootstrapApplication.java:179)中的android.app.Application.attach (Application.java:194)
在android.app.Instrumentation.newApplication(Instrumentation.java:992)
在android.app.Instrumentation.newApplication(Instrumentation.java:976)
在android.app.LoadedApk.makeApplication(LoadedApk.java: 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.os.Looper.loop(Looper.java:136)上的.os.Handler.dispatchMessage(Handler.java:102)。在com.android.internal.os上的java.lang.reflect.Method.invokeNative(本机方法)在Java.lang.reflect.Method.invoke(Method.java:515)处的ActivityThread.main(ActivityThread.java:5314)。位于dalvik.system.NativeStart上com.android.internal.os.ZygoteInit.main(ZygoteInit.java:680)的ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:864)。main(本机方法)原因:java.lang.ClassNotFoundException:com.eallcn.rentagent.MyDebugEallApplication在java.lang.Class.classForName(本机方法)在java.lang.Class.forName(Class.java:251)在java 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 :992),位于android.app.LoadedApk处的android.app.Instrumentation.newApplication(Instrumentation.java:976)上。makeApplication(LoadedApk.java:532)在android.app.ActivityThread.handleBindApplication(ActivityThread.java:4586)在android.app.ActivityThread.access $ 1800(ActivityThread.java:139)在android.app.ActivityThread $ H.handleMessage(位于android.os.Handler.dispatchMessage的ActivityThread.java:1316)(位于android.os.Looper的Handler.java:102)。android.app.ActivityThread.main(ActivityThread.java:5314)处的java.lang.reflect.Method.invokeNative(Native Method)处的Loop(Looper.java:136) com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:864)处的com.android.internal.os.ZygoteInit.main(ZygoteInit.java:java:515)680)在dalvik.system.NativeStart.main(本机方法)造成原因:java.lang.NoClassDefFoundError:com / eallcn / rentagent / MyDebugEallApplication在java.lang.Class.classForName(本机方法)在java.lang.Class.forName (Class.java:251)在java.lang.Class.forName(Class.java:216)在com.android.tools.fd.runtime.BootstrapApplication.createRealApplication(BootstrapApplication.java:155)在com.android.tools.fd.runtime.BootstrapApplication.attachBaseContext(BootstrapApplication.java:179)在android.app.Application .attach(Application.java:194)在android.app.Instrumentation.newApplication(Instrumentation.java:992),位于android.app.Instrumentation.newApplication(Instrumentation.java:976),位于android.app.LoadedApk.makeApplication(LoadedApk.java:532),位于android.app.ActivityThread.handleBindApplication(ActivityThread.java:4586)。位于android.app.ActivityThread $ H的app.ActivityThread.access $ 1800(ActivityThread.java:139)。android.os.Handler.dispatchMessage(Handler.java:102)的handleMessage(ActivityThread.java:1316)android.app.ActivityThread.main(ActivityThread.java)的android.os.Looper.loop(Looper.java:136) :5314),位于java.lang.reflect.Method.invokeNative(本机方法),位于java.lang.reflect.Method.invoke(Method.java:515)在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:864)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:680)在dalvik.system.NativeStart.main (本机方法)原因:java.lang.ClassNotFoundException:在路径:DexPathList [[zip文件“ /data/app/com.eallcn.rentagent.debug-1]上找不到类” com.eallcn.rentagent.MyDebugEallApplication“ .apk“],nativeLibraryDirectories = [/ data / app-lib / com.eallcn.rentagent.debug-1,/ vendor / lib,/ system / lib,/ data / datalib]]在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56 ),位于java.lang.Class的java.lang.ClassLoader.loadClass(ClassLoader.java:457)处的java.lang.ClassLoader.loadClass(ClassLoader.java:497)处。com.android.tools.fd.runtime.BootstrapApplication.createRealApplication()上java.lang.Class.forName(Class.java:251)上的classForName(Native Method)在java.lang.Class.forName(Class.java:216)上位于com.android.tools.fd.runtime的BootstrapApplication.java:155),位于android.app的BootstrapApplication.attachBaseContext(BootstrapApplication.java:179)。android.app.Instrumentation.newApplication(Instrumentation.java:992)的Application.attach(Application.java:194)android.app.Instrumentation.newApplication(Instrumentation.java:976)的android.app.LoadedApk.makeApplication(LoadedApk .java:532),位于android.app.ActivityThread.handleBindApplication(ActivityThread.java:4586)。在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1316)在android.os.Handler.dispatchMessage(Handler.java:102)处于ActivityThread.access $ 1800(ActivityThread.java:139)在android.os.Looper。 java.lang.reflect.Method中的android.app.ActivityThread.main(ActivityThread.java:5314)中的Loop(Looper.java:136)。com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:864)处java.lang.reflect.Method.invoke(Method.java:515)处的invokeNative(Native Method) dalvik.system.NativeStart.main上的os.ZygoteInit.main(ZygoteInit.java:680)(本机方法)515)在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:864)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:680)在dalvik.system.NativeStart.main (本机方法)515)在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:864)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:680)在dalvik.system.NativeStart.main (本机方法)680)在dalvik.system.NativeStart.main(本机方法)680)在dalvik.system.NativeStart.main(本机方法)

 


我认为这个问题是:它仅与android studio 2.0有关,而gradle版本不兼容!
GeekHades

该答案将解决您的问题
阿米特·瓦格拉

Answers:


313

在Android Studio中禁用即时运行选项。说明在Android Studio Instant Run文档中

Instant Run尝试对您的代码进行热交换;这将导致应用程序类被移动。

要禁用即时运行,请转至文件->设置->构建,执行,部署->即时运行--->取消选中“启用即时运行”


10
这只是在棉花糖装置上发生的事情
乔恩(Jon)

37
我是唯一一个谁认为你的IDE禁用这种大特色不是一个很好的解决方案?就像说使用Studio 1.4一样。不赞成投票。
纳塔里奥州

17
@mvai:这不是理想的解决方案,但它可能是最好的解决方案。如果问题是由Instant Run引起的,那么知道这一点并有时能够将其禁用非常有价值。Downvoting这个答案是喜欢拍摄谁告诉你不要走最短的路线回家,因为有埋伏等着你..使者
LarsH

3
@mvai:好的,可以说可以做些事情来改善答案(尽管5个中的4个似乎很明显)。但是拒绝投票不是为了“这个答案可能更好”,而是为了“这个答案没有用”。鉴于此答案非常有用。随意添加您认为可以改善答案的细节;在这里或您自己的答案。
LarsH '16

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

前两个步骤似乎为我解决了问题。
Marc

什么option name="gradleHome"啊 那在哪里。
IgorGanapolsky

1
如果您在应用程序中构建gradle:aaptOptions.setProperty(“ cruncherEnabled”,false),则最好将其删除。另外还有一件事,就是在完全稳定之前不要使用即时运行,这会引起很多问题
Stoycho Andreev

17

我有同样的错误。

我通过清理项目解决了(构建>清理项目)


3
被低估的答案!
阿努普

对于我来说,这似乎是正确的答案。我没有使用Android Studio就遇到了问题,所以我只运行了gradle clean和gradle assembleDebug来执行相同的操作。
肖恩


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版本才能即时运行。看来他们是对漏洞修复进行相当频繁alpha版本..
流亭

1
如果您正在开发客户的项目/自己的产品,则不建议使用“ alpha”或“ beta”版本;而是尝试使用一个或两个向下版本...因为它们不是一个稳定的版本。而且,如果您正在测试不稳定版本的错误修复和改进,即使罐头工厂频道的android studio也可以在此过程中提供更多帮助...
Bhuro

4

更改为

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

固定问题


3

在稳定频道中,Android 2.0也会出现此错误。

我做了什么?
-我已经在设备上安装了较旧版本的应用程序(该版本使用Studio的较早版本构建),我试图通过在设备上运行较新的应用程序进行替换。
在运行新应用程序之前,我只是完全卸载了旧版本,这种方法起作用了。



2

如果您不想禁用即时运行,只需清理项目并重新运行即可。



2

我也遇到了同样的问题,我解决了。就我而言,这是由于全局类(整个Application上下文类)中的错误所致,我的错误在于AndroidManifest.xml我将Application类声明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中以防止在调试时进行dex

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”

我们必须禁用“即时运行”。

进入File> Settings> Built, Execution, Deployment>Instant Run

然后禁用该选项 Enable Instant Run to hot swap code.

在此处输入图片说明


1

我只需要重启设备即可。不幸的是,首先尝试了其他所有事情,所以浪费了很多时间。


1

如果您共享您的应用程序,那么另一个解决方案是

Android Studio --> Build --> Build APK

将会弹出一个弹出窗口APK generated successfullyShow in Explorer将您带到生成的apk文件夹。


1

无需禁用“即时运行”。
1. 使用文件资源管理器转到项目的根目录
。2. 完成Android Studio(AS)
3. 删除(移至某处)“ .gradle”的文件夹内容
(以清理一些现金和旧物品)
4. 在res文件夹中清理所有不当内容文件
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'并像魅力一样工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.