无法实例化应用程序 com.android.tools.fd.runtime.BootstrapApplication ?Android
Posted
技术标签:
【中文标题】无法实例化应用程序 com.android.tools.fd.runtime.BootstrapApplication ?Android【英文标题】:Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication ?Android 【发布时间】:2016-03-02 06:21:33 【问题描述】:我将我的 android Studio 更新到了 2.0 版。但是我有一个问题,我不知道为什么?
重要的错误信息:
无法实例化应用程序 com.android.tools.fd.runtime.BootstrapApplication: java.lang.IllegalStateException: java.lang.ClassNotFoundException: com.eallcn.rentagent.MyDebugEallApplication
找了很久,没有找到正确的答案 你可以看到link
同时点击文件->项目结构 它显示了这个错误:
库中有什么问题吗?当 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: 致命异常: main 进程: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 在 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.reflect.Method.invokeNative(Native Method) 在 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.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(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.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.reflect.Method.invokeNative(Native Method) 在 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: 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.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.reflect.Method.invokeNative(Native Method) 在 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.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.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.reflect.Method.invokeNative(Native Method) 在 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:找不到类 路径上的“com.eallcn.rentagent.MyDebugEallApplication”: DexPathList[[压缩文件 "/data/app/com.eallcn.rentagent.debug-1.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.ClassLoader.loadClass(ClassLoader.java:497) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:457) 在 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.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.reflect.Method.invokeNative(Native Method) 在 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(Native Method)
【问题讨论】:
我认为这个问题是:它只是关于 android studio 2.0 和 gradle 版本不兼容! this answer 将解决您的问题 【参考方案1】:在 Android Studio 中禁用 Instant Run 选项。说明在Android Studio Instant Run documentation。
Instant Run 尝试对您的代码进行热交换;这会导致应用程序类被移动。
要禁用即时运行转到文件 --> 设置--> 构建、执行、部署 --> 即时运行 ---> 取消选中“启用即时运行”
【讨论】:
这只是在棉花糖设备上发生在我身上 只有我一个人认为禁用 IDE 的这一主要功能 不是 一个好的解决方案吗?这就像说使用 Studio 1.4。投反对票。 @mvai:这不是一个理想的解决方案,但它可能是最好的解决方案。如果问题是由 Instant Run 引起的,那么了解这一点并能够不时禁用它是非常有价值的。否决这个答案就像射杀那个告诉你不要走最短路线回家的信使,因为有一个伏击在等着你.. @mvai:好的,可以说可以做这些事情来改善答案(尽管 5 中的 4 似乎很明显)。但是投票不是为了“这个答案可能会更好”,而是为了“这个答案没用”。而这个答案非常有用。随意添加您认为会改善答案的细节;在这里或您自己的答案。 这是一个可悲的答案,但因为 Instant Run 太糟糕了,所以它是唯一正确的解决方案。【参考方案2】:我在尝试使用 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" />
我不知道错误的确切来源是哪一行,但是通过这三个更改,它得到了解决。
希望对你有帮助:)
【讨论】:
第三步:在哪里可以找到,我要改。我可以找到代码! 嗨,请参阅编辑后的答案。 (<project folder>/.idea/gradle.xml
)
前两个步骤似乎为我解决了这个问题。
什么是option name="gradleHome"
?它在哪里。
如果您的应用程序构建 gradle 中有:aaptOptions.setProperty("cruncherEnabled", false),最好将其删除。还有一件事在完全稳定之前不要使用即时运行,这会带来很多问题【参考方案3】:
我有同样的错误。
我通过清理项目解决了它(构建>清理项目)
【讨论】:
被低估的答案! 这对我来说似乎是正确的答案。我在没有使用 Android Studio 的情况下遇到了这个问题,所以我只运行了一个 gradle clean 和 gradle assembleDebug 来做同样的事情。【参考方案4】:只需转到 Android Studio 菜单 - 构建 --> 重建项目。
【讨论】:
【参考方案5】:我可以通过将 gradle-wrapper.properties 更新为 gradle-2.14.1-all
并清理/重建项目来消除此错误。然后它运行良好。不需要其他更改(如上述答案中所建议的那样)...
【讨论】:
你在使用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
后错误仍然存在
是的,我升级到 Android Studio Preview 5,它说我必须升级 gradle 版本才能即时运行。似乎他们正在为错误修复制作相当频繁的 alpha 版本..
如果您正在开发客户的项目/您自己的产品,则不建议使用“alpha”或“beta”版本;而是尝试使用一到两个向下版本……因为它们不是稳定的版本。如果您正在测试不稳定的版本以进行错误修复和改进,即使是罐头厂频道的 android studio 也可以在此过程中提供更多帮助...【参考方案6】:
改成
classpath 'com.android.tools.build:gradle:2.0.0-alpha6'
已解决的问题
【讨论】:
【参考方案7】:我在 Android 2.0 的稳定频道中也遇到了这个错误。
我做了什么? - 我已经在设备上安装了旧版本的应用程序(它是使用旧版本的 Studio 构建的),我试图通过在设备上运行新的应用程序来替换它。 我只是在运行新应用程序之前完全卸载了旧版本并且这个技巧奏效了。
【讨论】:
【参考方案8】:只为那些想用最新的 gradle 插件版本更新 classPath 的人,在哪里可以找到最新的插件版本?
签入http://tools.android.com/tech-docs/new-build-system 并更新您的classPath。目前最新的是
classpath 'com.android.tools.build:gradle:2.0.0'.
始终尝试使用最新的插件版本进行构建。
【讨论】:
【参考方案9】:如果您不想禁用 Instant Run,只需清理项目并重新运行即可。
【讨论】:
【参考方案10】:将classpath 'com.android.tools.build:gradle:2.1.2'
更改为classpath 'com.android.tools.build:gradle:2.1.0'
解决了我的问题。
【讨论】:
【参考方案11】:我也遇到了同样的问题,我解决了。在我的情况下,这是由于全局类中的错误(整个应用程序上下文类),我的错误是在AndroidManifest.xml
我已将应用程序类 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
(应用程序类)中添加了默认构造函数。
【讨论】:
【参考方案12】:您也可以将其添加到您的 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
【讨论】:
【参考方案13】:在 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.
【讨论】:
【参考方案14】:我只需要重启我的设备。不幸的是,先尝试了其他所有方法,所以浪费了时间。
【讨论】:
【参考方案15】:如果您要共享您的应用,那么另一种解决方案是
转到Android Studio --> Build --> Build APK
APK generated successfully
会弹出一个弹出窗口。 Show in Explorer
将带您进入生成的 apk 文件夹。
【讨论】:
【参考方案16】:无需禁用“即时运行”。 1. 使用文件资源管理器转到项目的根目录 2. 完成 Android Studio(AS) 3. 删除(重新定位)“.gradle”的文件夹内容 (清理一些现金和旧文物) 4. 在 res 文件夹中清除所有不合适的文件 5. 再次启动 AS 6. 在模块的 build.gradle 中将“buildTypes debug minifyEnabled true”设置为 false (看起来我的 proguard 文件中有错误,kek)
再次同步、编译和运行应用程序:/
【讨论】:
【参考方案17】:当您使用 .java 文件添加空白活动时,将发生此错误。因此,要首先解决此错误,您必须再次构建项目。然后运行它。解决了 谢谢。
【讨论】:
黑色活动?【参考方案18】:我刚刚将 Android Studio 更新到最新版本(2.0 Beta 5)。它将自身更改为 classpath 'com.android.tools.build:gradle:2.0.0-beta5'
,并且像一个魅力一样工作。
【讨论】:
以上是关于无法实例化应用程序 com.android.tools.fd.runtime.BootstrapApplication ?Android的主要内容,如果未能解决你的问题,请参考以下文章