我从稳定频道更新到Android Studio 2.1。我一做到这一点,我就得到了我的登录类ClassNotFoundException,它在清单中声明了很长时间。在更新之前,我的应用程序编译正常。
com.myapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.myapp, PID: 29605
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.myapp/com.myapp.Login}: java.lang.ClassNotFoundException: Didn't find class "com.myapp.Login" on path: DexPathList[[zip file "/data/app/com.myapp-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3023)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3294)
at android.app.ActivityThread.access$1000(ActivityThread.java:210)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1704)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.myapp.Login" on path: DexPathList[[zip file "/data/app/com.myapp-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at android.app.Instrumentation.newActivity(Instrumentation.java:1094)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3013)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3294)
at android.app.ActivityThread.access$1000(ActivityThread.java:210)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1704)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Suppressed: java.lang.ClassNotFoundException: com.myapp.Login
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 13 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
这是我的gradle.build
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
android {
compileSdkVersion 'Google Inc.:Google APIs:23'
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.myapp"
minSdkVersion 14
targetSdkVersion 22
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
// compile files('libs/smack-core-4.0.7.jar')
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.google.android.gms:play-services:7.8.0'
compile 'com.google.maps.android:android-maps-utils:0.4+'
}
到目前为止,我已经尝试过了 1)清理和重建项目 2)删除构建文件夹并重建项目/重启Android Studio 3)切换到金丝雀频道以及开发频道和更新 4)在“设置”中选中并取消选中离线模式 显然这是一个错误,但有解决方案吗?如何撤消最近的更新?任何帮助深表感谢。
答案 0 :(得分:8)
试试这个:
清除应用cache
清除应用data
Uninstall
app
Run/Debug
希望它有效!
答案 1 :(得分:5)
我们在更新到Android Studio 2.1版后遇到类似错误。很久以前添加的类现在在应用程序启动时找不到。只有Android 5.1和5.1.1才会发生 。非常奇怪的崩溃!
解决方法是启用“即时运行”解决Lollipop上的问题。
答案 2 :(得分:2)
我遇到了这个错误并且已经查看了许多SO线程和各种资源,并且还检查了android dev irc。答案似乎遵循一种趋势:
清理构建,重置Android Studio缓存,卸载/重新安装android studio,离开Android Studio并在2小时内返回,重新启动计算机。
是否通过清单正确列出了? gradle配置怎么样?
Libraries do not get added to APK anymore after upgrade to ADT 22
Android Activity ClassNotFoundException - tried everything
https://www.youtube.com/watch?v=3vqcGhEPHdo
我通过纯粹的绝望发现,通过将我的班级名称Manifest
更改为MyCoolManifest
或类似的东西,我不再有问题。由于您的班级名称是Login
,因此重命名班级可能会解决您的问题。
答案 3 :(得分:2)
尝试清理gradle cache&通过在终端中运行每一行来构建:
gradlew --stop
gradlew cleanBuildCache
gradlew clean
答案 4 :(得分:1)
你必须提供:
compileSdkVersion '22' buildToolsVersion "22.0.1"
作为targetSdkVersion 22
答案 5 :(得分:1)
现在开始:清理项目,卸载现有应用并再次运行。
答案 6 :(得分:0)
对我来说,没有任何上述工作。直到我将“即时运行”停用为热插拔代码。
Android工作室版本: 2.3.3 最新版本(在答案日期)
Android测试设备: 5.1.1,6.0.1
禁用即时运行。在Android工作室中,获得首选项 - >在搜索栏中写上“即时运行” - >取消选中“启用即时热运行以热插拔代码... ”