I updated to Android Studio 2.1 from the stable channel. As soon as I did that I am getting ClassNotFoundException to my login class, which is declared in the manifest for long time. Prior to the update my app was compiling fine.
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
This is my 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+'
}
So far I have tried
1)Clean and rebuild project
2)Delete the build folder and rebuild project/restart Android Studio
3)Switch to canary channel as well as dev channel and update
4)Check and uncheck the offline mode in Settings
Obviously this is a bug, but is there a solution to this? How can I reverse the recent updates? Any help is much appreciated.
Try this:
Clear app cache
Clear app data
Uninstall
app
Run/Debug
again
Hope it works!
Answer:
We are experiencing a similar error after updating to version 2.1 of Android Studio. A class added long ago is now not being found on application start. It’s only happening with Android 5.1 and 5.1.1. Really weird crash!
The solution to this was enabling “Instant Run” solves the issue on Lollipop.
Answer:
I experienced this error and had looked at a number of SO threads, and various resources and also checked in to the android dev irc. The answers seem to follow a trend:
Gradle/Android Studio General:
Clean build, reset Android Studio caches, uninstall/reinstall android studio, leave Android Studio and come back to it in 2 hours, restart your computer.
Referencing the class
Is it correctly listed through the manifest? What about gradle configuration?
Loading Classes via IDE (though that seems mostly eclipse related)
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
My solution: naming conflict?
I found through pure desperation that by changing my class name Manifest
to MyCoolManifest
or something like that, I no longer had the issue. Since your class name is Login
, perhaps renaming the class will solve your problem.
Answer:
Try cleaning gradle cache & build by running each line in the terminal:
gradlew --stop
gradlew cleanBuildCache
gradlew clean
Answer:
Here you go : Clean the project , And uninstall the existing app and run Again .
Answer:
You have to provide:
compileSdkVersion '22' buildToolsVersion "22.0.1"
as your targetSdkVersion 22
Answer:
For me nothing of the above worked. Until I disabled “Instant Run” to Hot Swap code.
Android studio version: 2.3.3 Latest (at the date of the answer)
Android Test Devices: 5.1.1, 6.0.1
To disable instant run. In Android studio, Got to Preferences -> write “Instant Run” in the search bar -> Uncheck “Enable Instant Run to hot swap code …“
Tags: android, androidjava, class, date, exception