Java.lang.ClassNotFoundException Android 工作室更新后
Java.lang.ClassNotFoundException after Android studio update
我从稳定版更新到 Android Studio 2.1。一旦我这样做,我的登录 class 就会收到 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.access00(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.access00(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)删除构建文件夹并重建project/restart Android Studio
3)切换到canary频道和dev频道并更新
4)在设置中勾选和取消勾选离线模式
显然这是一个错误,但是有解决办法吗?我怎样才能撤销最近的更新?任何帮助深表感谢。
试试这个:
清除应用程序cache
清除应用程序data
Uninstall
应用
Run/Debug
再一次
希望有用!
您必须提供:
compileSdkVersion '22' buildToolsVersion "22.0.1"
作为你的targetSdkVersion 22
我遇到了这个错误,查看了许多 SO 线程和各种资源,还签入了 android dev irc。答案似乎遵循一个趋势:
Gradle/Android 工作室一般:
清理构建,重置 Android Studio 缓存,uninstall/reinstall android studio,离开 Android Studio 并在 2 小时内返回,重新启动计算机。
引用 class
清单中是否正确列出了它? gradle 配置如何?
正在通过 IDE 加载 类(尽管这似乎主要与 eclipse 相关)
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
我的解决方案:命名冲突?
我绝望地发现,通过将我的 class 名称 Manifest
更改为 MyCoolManifest
或类似名称,我不再遇到问题。由于您的 class 名称是 Login
,也许重命名 class 可以解决您的问题。
开始吧:清理项目,并卸载现有的应用程序并再次运行。
更新到 Android Studio 2.1 版后,我们遇到了类似的错误。应用程序启动时现在找不到很久以前添加的 class。 仅在 Android 5.1 和 5.1.1 中发生。真的很奇怪的崩溃!
此问题的解决方案是启用“Instant 运行”解决了 Lollipop 上的问题。
对我来说,以上都没有用。直到我禁用“Instant 运行”到热插拔代码。
Android工作室版本:2.3.3最新(在回答日期)
Android 测试设备:5.1.1、6.0.1
禁用即时运行。在 Android studio 中,转到首选项 -> 在搜索栏中输入“Instant 运行” -> 取消选中“Enable Instant 运行 热插拔代码 ..."
尝试通过 运行 终端中的每一行清理 gradle 缓存和构建:
gradlew --stop
gradlew cleanBuildCache
gradlew clean
尝试用匿名替换 lambda class:
java.lang.ClassNotFoundException 在我的 android 工作室项目中发生在两个 class 中 – 在它们中都有 lambda 表达式。在我用匿名 class 替换 lambda 之后 – 构建成功。
我从稳定版更新到 Android Studio 2.1。一旦我这样做,我的登录 class 就会收到 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.access00(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.access00(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)删除构建文件夹并重建project/restart Android Studio 3)切换到canary频道和dev频道并更新 4)在设置中勾选和取消勾选离线模式 显然这是一个错误,但是有解决办法吗?我怎样才能撤销最近的更新?任何帮助深表感谢。
试试这个:
清除应用程序cache
清除应用程序data
Uninstall
应用
Run/Debug
再一次
希望有用!
您必须提供:
compileSdkVersion '22' buildToolsVersion "22.0.1"
作为你的targetSdkVersion 22
我遇到了这个错误,查看了许多 SO 线程和各种资源,还签入了 android dev irc。答案似乎遵循一个趋势:
Gradle/Android 工作室一般:
清理构建,重置 Android Studio 缓存,uninstall/reinstall android studio,离开 Android Studio 并在 2 小时内返回,重新启动计算机。
引用 class
清单中是否正确列出了它? gradle 配置如何?
正在通过 IDE 加载 类(尽管这似乎主要与 eclipse 相关)
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
我的解决方案:命名冲突?
我绝望地发现,通过将我的 class 名称 Manifest
更改为 MyCoolManifest
或类似名称,我不再遇到问题。由于您的 class 名称是 Login
,也许重命名 class 可以解决您的问题。
开始吧:清理项目,并卸载现有的应用程序并再次运行。
更新到 Android Studio 2.1 版后,我们遇到了类似的错误。应用程序启动时现在找不到很久以前添加的 class。 仅在 Android 5.1 和 5.1.1 中发生。真的很奇怪的崩溃!
此问题的解决方案是启用“Instant 运行”解决了 Lollipop 上的问题。
对我来说,以上都没有用。直到我禁用“Instant 运行”到热插拔代码。
Android工作室版本:2.3.3最新(在回答日期)
Android 测试设备:5.1.1、6.0.1
禁用即时运行。在 Android studio 中,转到首选项 -> 在搜索栏中输入“Instant 运行” -> 取消选中“Enable Instant 运行 热插拔代码 ..."
尝试通过 运行 终端中的每一行清理 gradle 缓存和构建:
gradlew --stop
gradlew cleanBuildCache
gradlew clean
尝试用匿名替换 lambda class: java.lang.ClassNotFoundException 在我的 android 工作室项目中发生在两个 class 中 – 在它们中都有 lambda 表达式。在我用匿名 class 替换 lambda 之后 – 构建成功。