I am trying to solve a problem with running Android app that has over 65k methods.
I have followed Google docs about Multidex support, however I'm still unable to run it successfully. It seems that the problem appears only on SDK less than 21, because when I specify minSdkVersion 21, it works well, however once I set it to minSdkVersion 15, I am getting following exception.
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to instantiate application custom.package.name.MyApplication: java.lang.ClassNotFoundException: Didn't find class "custom.package.name.MyApplication" on path: DexPathList[[zip file "/data/app/custom.package.name-2/base.apk"],nativeLibraryDirectories=[/data/app/custom.package.name-2/lib/arm, /vendor/lib, /system/lib]]
at android.app.LoadedApk.makeApplication(LoadedApk.java:578)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4680)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.ClassNotFoundException: Didn't find class "custom.package.name.MyApplication" on path: DexPathList[[zip file "/data/app/custom.package.name-2/base.apk"],nativeLibraryDirectories=[/data/app/custom.package.name-2/lib/arm, /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.newApplication(Instrumentation.java:981)
at android.app.LoadedApk.makeApplication(LoadedApk.java:573)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4680)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Suppressed: java.io.IOException: Failed to open dex files from /data/app/custom.package.name-2/base.apk
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:295)
at dalvik.system.DexFile.<init>(DexFile.java:80)
at dalvik.system.DexFile.<init>(DexFile.java:59)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:279)
at dalvik.system.DexPathList.makePathElements(DexPathList.java:248)
at dalvik.system.DexPathList.<init>(DexPathList.java:120)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:48)
at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:65)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:58)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:376)
at android.app.LoadedApk.makeApplication(LoadedApk.java:568)
... 9 more
Suppressed: java.lang.ClassNotFoundException: custom.package.name.MyApplication
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)
... 12 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
Logcat before fatal exception
W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm --instruction-set-features=smp,div,atomic_ldrd_strd --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=krait --instruction-set-features=default --dex-file=/data/app/custom.package.name-2/base.apk --oat-file=/data/dalvik-cache/arm/data#app#custom.package.name-2-2#base.apk#classes.dex) because non-0 exit status
W/art: Failure to verify dex file '/data/app/ccustom.package.name-2-2/base.apk': Invalid method name: '_clinit#1433781298707#0'
W/System: ClassLoader referenced unknown path: /data/app/custom.package.name-2-2/lib/arm
Here is what I've done so far:
created class called MyApplication that extends Application and specified it in AndroidManifest.xml file
added dependency to build.gradle file
compile 'com.android.support:multidex:1.0.1'
enabled multidex in build.gradle
multiDexEnabled true
enabled multidex in MyApplication class
#Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
Thanks in advance for any help!
Try this, this is working for me, pretty much copied from a current project....
build.gradle
android {
compileSdkVersion 23
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "my.package.name"
minSdkVersion 16
targetSdkVersion 23
multiDexEnabled = true
versionCode 3
versionName "0.1.2"
renderscriptTargetApi 14
renderscriptSupportModeEnabled true
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:multidex:1.0.1'
}
Application Class
public class MyApp extends MultiDexApplication {
#Override
public void onCreate() {
super.onCreate();
}
}
Manifest
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
...
<application
android:name=".MyApp"
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
...
It is worth noting that I had a similar issue until i added the READ permission and extends MultiDexApplication
Problem is because of this obfuscator:
<dependency>
<groupId>net.java.truelicense</groupId>
<artifactId>truelicense-obfuscate</artifactId>
<version>${truelicense.obfuscate.version}</version>
</dependency>
Related
Only Mi pad having that issue when run the app.
For fix that issues i have try
1. Uninstall the app and retry to connect that but get same error
2. Instant run is disable in my android studio
3. User Multi desk in build gradle
Other project is working from same android studio in same tab
Any one Have idea how to fix that .
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.uncommonsense, PID: 23808
java.lang.RuntimeException: Unable to instantiate application .application.ApplicationDetails: java.lang.ClassNotFoundException: Didn't find class ".application.ApplicationDetails" on path: DexPathList[[zip file "/data/app/com.test.apk"],nativeLibraryDirectories=[/data/app-lib/com.uncommonsense-1, /vendor/lib, /system/lib]]
at android.app.LoadedApk.makeApplication(LoadedApk.java:507)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4328)
at android.app.ActivityThread.access$1500(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1270)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5028)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.ucsvirtualschool.application.ApplicationDetails" on path: DexPathList[[zip file "/data/app/com.uncommonsense-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.uncommonsense-1, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
at android.app.Instrumentation.newApplication(Instrumentation.java:975)
Application class
public class ApplicationDetails extends MultiDexApplication {
public static boolean isAppOpen = false;
private static ApplicationDetails mInstance;
public static final String TAG = ApplicationDetails.class.getSimpleName();
#Override
protected void attachBaseContext(Context base) {
MultiDex.install(this);
super.attachBaseContext(base);
}
#Override
public void onTerminate() {
// TODO Auto-generated method stub
super.onTerminate();
isAppOpen = false;
}
}
build gradle
defaultConfig {
applicationId "com.ucsvirtualschool"
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables { useSupportLibrary = true }
dataBinding {
enabled = true
}
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
ndk {
abiFilters "armeabi", "x86"
}
implementation 'com.android.support:multidex:1.0.3' //for solve issue in mi tab
I would think of two things based on the code snippets you provided.
You already use the MultiDexApplication so you don't need to override the attachBaseContext method
It might happen, but very unlikely that the ApplicationDetails class doesn't make it to the first dex file and that's why the app is crashing. You could try to declare the class to be required to be in the very first dex file. Declare classes required in the primary dex file
Maybe you can try this: complete the application name ".application.ApplicationDetails" with "com.ucsvirtualschool.application.ApplicationDetails" in your in AndroidManifest.xml.
<application
android:name="com.ucsvirtualschool.application.ApplicationDetails"
android:allowBackup="false"
android:hardwareAccelerated="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:roundIcon="#mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="#style/AppTheme"
tools:replace="android:allowBackup">
I made a simple app with a webview and published it to the playstore - everything worked fine. Recently i updated the ip of the webview, changed the version code, generated a signed apk and re-uploaded to playstore. However, when i downloaded it to test, it crashes.
08-21 03:48:34.916 926-4059/? I/ActivityManager: START u0
{act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]
flg=0x10000000 pkg=com.rayzor536.appointments
cmp=com.rayzor536.appointments/.MainActivity} from uid 10039
08-21 03:48:34.995 926-4061/? I/ActivityManager: Start proc 703
4:com.rayzor536.appointments/u0a137 for activity
com.rayzor536.appointments/.MainActivity
08-21 03:48:35.149 7034-7034/? I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.rayzor536.appointments.MainActivity>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/app/AppCompatActivity;
08-21 03:48:35.149 7034-7034/? I/zygote: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.app.AppCompatActivity" on path: DexPathList[[zip file "/data/app/com.rayzor536.appointments-ijS7lUJ8dmD9B9er-lMpYw==/base.apk"],nativeLibraryDirectories=[/data/app/com.rayzor536.appointments-ijS7lUJ8dmD9B9er-lMpYw==/lib/arm, /system/lib, /system/vendor/lib]]
08-21 03:48:35.152 7034-7034/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.rayzor536.appointments, PID: 7034
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.rayzor536.appointments/com.rayzor536.appointments.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.rayzor536.appointments.MainActivity" on path: DexPathList[[zip file "/data/app/com.rayzor536.appointments-ijS7lUJ8dmD9B9er-lMpYw==/base.apk"],nativeLibraryDirectories=[/data/app/com.rayzor536.appointments-ijS7lUJ8dmD9B9er-lMpYw==/lib/arm, /system/lib, /system/vendor/lib]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2680)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2857)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1590)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6499)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.rayzor536.appointments.MainActivity" on path: DexPathList[[zip file "/data/app/com.rayzor536.appointments-ijS7lUJ8dmD9B9er-lMpYw==/base.apk"],nativeLibraryDirectories=[/data/app/com.rayzor536.appointments-ijS7lUJ8dmD9B9er-lMpYw==/lib/arm, /system/lib, /system/vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.Instrumentation.newActivity(Instrumentation.java:1174)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2670)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2857)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1590)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6499)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Suppressed: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/app/AppCompatActivity;
at java.lang.VMClassLoader.findLoadedClass(Native Method)
at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:738)
at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
... 12 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.app.AppCompatActivity" on path: DexPathList[[zip file "/data/app/com.rayzor536.appointments-ijS7lUJ8dmD9B9er-lMpYw==/base.apk"],nativeLibraryDirectories=[/data/app/com.rayzor536.appointments-ijS7lUJ8dmD9B9er-lMpYw==/lib/arm, /system/lib, /system/vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 15 more
08-21 03:48:35.157 926-5481/? W/ActivityManager: Force finishing activity com.rayzor536.appointments/.MainActivity
08-21 03:48:35.173 926-1066/? I/ActivityManager: Showing crash dialog for package com.rayzor536.appointments u0
08-21 03:48:35.662 926-1065/? W/ActivityManager: Activity pause timeout for ActivityRecord{6e9e3f1 u0 com.rayzor536.appointments/.MainActivity t1469 f}
08-21 03:48:35.895 926-1416/? I/WindowManager: Failed to capture screenshot of Token{26fabd6 ActivityRecord{6e9e3f1 u0 com.rayzor536.appointments/.MainActivity t1469 f}} appWin=Window{313f14f u0 Splash Screen com.rayzor536.appointments EXITING} drawState=4
08-21 03:48:42.402 926-5481/? W/ActivityManager: Force finishing activity com.rayzor536.appointments/.MainActivity
08-21 03:48:42.404 926-5481/? I/ActivityManager: Killing 7034:com.rayzor536.appointments/u0a137 (adj 900): crash
my gradle file is below:
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.rayzor536.appointments"
minSdkVersion 23
targetSdkVersion 27
versionCode 3
versionName "1.0.2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
postprocessing {
removeUnusedCode false
removeUnusedResources false
obfuscate false
optimizeCode false
proguardFile 'proguard-rules.pro'
}
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
compile 'com.android.support:multidex:1.0.3'
}
Here is my app manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.rayzor536.appointments">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:roundIcon="#mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="#style/AppTheme"
android:name="android.support.multidex.MultiDexApplication">
<activity android:name="com.rayzor536.appointments.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
the error line
Didn't find class "com.rayzor536.appointments.MainActivity"
says that somewhere you have been messed up with the android manifest.xml file
once check if the manifest file is good after changing your version code.
I have a problem, I have it with all my projects, so I came up with a new project with Android 3 Canary 7, but it always gives me the same error.
I have MacOS Sierra 10.12.6
It's a complete new project, so i don't know what to do to solve it
This error occurs:
07-24 10:25:57.776 29708-29708/com.estebanmoncaleano.myapplication
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.estebanmoncaleano.myapplication, PID: 29708
java.lang.RuntimeException: Unable to instantiate activity
ComponentInfo{com.estebanmoncaleano.myapplication/com.estebanmoncaleano.myapplication.MainActivity}:
java.lang.ClassNotFoundException: Didn't find class
"com.estebanmoncaleano.myapplication.MainActivity" on path:
DexPathList[[zip file
"/data/app/com.estebanmoncaleano.myapplication-2/base.apk", zip file
"/data/app/com.estebanmoncaleano.myapplication-2/split_lib_dependencies_apk.apk"],nativeLibraryDirectories=[/vendor/lib,
/system/lib]]
at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2972)
at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3243)
at android.app.ActivityThread.access$1000(ActivityThread.java:218)
at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1718)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6917)
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.estebanmoncaleano.myapplication.MainActivity" on path:
DexPathList[[zip file
"/data/app/com.estebanmoncaleano.myapplication-2/base.apk", zip file
"/data/app/com.estebanmoncaleano.myapplication-2/split_lib_dependencies_apk.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:2962)
at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3243)
at android.app.ActivityThread.access$1000(ActivityThread.java:218)
at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1718)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6917)
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.estebanmoncaleano.myapplication.MainActivity
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
My Gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.0"
defaultConfig {
applicationId "com.estebanmoncaleano.myapplication"
minSdkVersion 16
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
implementation 'com.android.support:appcompat-v7:26.0.0-beta2'
testImplementation 'junit:junit:4.12'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
}
My Manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.estebanmoncaleano.myapplication">
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:roundIcon="#mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
My Gradle Proyect Settings:
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
android.enableAapt2=false
What do you think I can do to solve my problem?
Thanks for your time!
Seems instant run is broken.
Try Stop → Run(not Apply changes - yellow lighting-shape), or Clean → Rebuild.
Clean your project, rebuild and run it. That's working for me. Thanks.
I am using Android studio 2.3.1 on windows 10. When I tried to run the app on device, when my device is connected to android studio, then I am able to run the app. But when I tried to install its debug or release apk on android phone then it is getting installed but while opening the app it gives following error:
04-27 10:06:31.675 30541-30541/package name E/AndroidRuntime: FATAL EXCEPTION: main
Process: package_Name, PID: 30541
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{package Name/package_Name.SplashActivity}: java.lang.ClassNotFoundException: Didn't find class "package_Name.SplashActivity" on path: DexPathList[[zip file "/data/app/package_Name-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2227)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2376)
at android.app.ActivityThread.access$800(ActivityThread.java:147)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5253)
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:900)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:695)
Caused by: java.lang.ClassNotFoundException: Didn't find class "package_Name.SplashActivity" on path: DexPathList[[zip file "/data/app/package_Name-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:1065)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2217)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2376)
at android.app.ActivityThread.access$800(ActivityThread.java:147)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5253)
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:900)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:695)
Suppressed: java.lang.ClassNotFoundException: package Name.SplashActivity
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
Any help will be appreciated.
My gradle code
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "package_Name"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:design:25.3.1'
testCompile 'junit:junit:4.12'
}
You can solve this with just "Build (tab) / Build APK" instead of Run 'app'
#ASK could you please clean your project and rebuild it. This is the error mostly obtained when your apk is not properly created
Your package name should not contain space as from your code their is space in the package name
Please change it to like package.name
The problem might have occurred because you have you might have exceeded the 64k method limit.
You should consider enabling multidex in your app.
defaultConfig {
...
...
// Enabling multidex support.
multiDexEnabled true
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
Also add this to manifest
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.multidex.myapplication">
<application
...
android:name="android.support.multidex.MultiDexApplication">
...
</application>
</manifest>
Uncheck Instant Run..
How to do this:
Open the Settings or Preferences dialog: On Windows or Linux, select File > Settings from the menu bar. On Mac OSX, select Android Studio > Preferences from the menu bar.
Navigate to Build, Execution, Deployment > Instant Run.
Uncheck the box next to Restart activity on code changes.
This has been the first time I've ever encountered an issue like this and I'm a bit dumbfounded by it. My problem is whenever I debug my application, everything is all fine and dandy, but as soon as I generate an apk and distribute it through crashlytics to my beta testers, all hell breaks lose and I'm thrown this Resources$NotFoundExeption.
I checked my R.java file for resource 0x7f070024 and found that it shows this:
public static final int common_google_play_services_unknown_issue=0x7f070024;
This didn't mean like much to me. I then proceeded to the other string resource error which was pointing to resource id 0x7f070036 which shows me:
public static final int app_name=0x7f070036;
I checked the usage of this variable and the only place that I'm using this string resource is inside the AndroidManifest.xml :
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name" //**HERE**
android:theme="#style/AppTheme">
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version"/>
<meta-data
android:name="io.fabric.ApiKey"
android:value="blablablah"/>
<activity
android:name=".views.activities.LoginActivity"
android:configChanges="keyboard|keyboardHidden"
android:screenOrientation="portrait">
<intent-filter android:label="#string/app_name"> //**HERE**
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
Just to complete this question, let me add my gradle files as they may be important to solving this problem:
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "helpme.jesus"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.google.android.gms:play-services-gcm:8.4.0'
compile 'com.android.support:support-v4:21.0.+'
compile 'com.android.support:design:23.1.0'
compile 'de.greenrobot:greendao:2.0.0'
compile 'com.squareup:otto:1.3.8'
compile 'com.squareup.dagger:dagger:1.2.2'
compile 'com.birbit:android-priority-jobqueue:1.3.5'
compile 'com.android.support:cardview-v7:23.1.0'
compile 'com.android.support:recyclerview-v7:23.1.0'
compile 'com.google.zxing:core:3.2.1'
compile('com.crashlytics.sdk.android:crashlytics:2.5.7#aar') {
transitive = true;
}
compile('com.mapbox.mapboxsdk:mapbox-android-sdk:4.1.0-beta.2#aar') {
transitive = true
}
apt 'com.squareup.dagger:dagger-compiler:1.2.2'
}
apply plugin: 'com.google.gms.google-services'
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0-alpha3'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
classpath 'com.google.gms:google-services:2.0.0-alpha5'
}
}
What am I missing? What am I doing incorrectly?
Logcat files will be added here just incase:
06-21 18:28:37.171 25824-25824/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: dev.helpme.jesus, PID: 25824
java.lang.RuntimeException: Unable to get provider com.google.android.gms.measurement.AppMeasurementContentProvider: android.content.res.Resources$NotFoundException: Unable to find resource ID #0x7f070024
at android.app.ActivityThread.installProvider(ActivityThread.java:5092)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4669)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4609)
at android.app.ActivityThread.access$1500(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1374)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5345)
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:947)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:742)
Caused by: android.content.res.Resources$NotFoundException: Unable to find resource ID #0x7f070024
at android.content.res.Resources.getResourcePackageName(Resources.java:2089)
at com.google.android.gms.measurement.zza.<init>(Unknown Source)
at com.google.android.gms.measurement.zza.zzaR(Unknown Source)
at com.google.android.gms.measurement.internal.zzn.zziJ(Unknown Source)
at com.google.android.gms.measurement.internal.zzz.zza(Unknown Source)
at com.google.android.gms.measurement.internal.zzw.<init>(Unknown Source)
at com.google.android.gms.measurement.internal.zzaa.zzDj(Unknown Source)
at com.google.android.gms.measurement.internal.zzw.zzaT(Unknown Source)
at com.google.android.gms.measurement.AppMeasurementContentProvider.onCreate(Unknown Source)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1696)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1671)
at android.app.ActivityThread.installProvider(ActivityThread.java:5089)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4669)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4609)
at android.app.ActivityThread.access$1500(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1374)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5345)
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:947)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:742)
06-21 18:28:37.231 533-556/? W/PackageManager: Failure retrieving text 0x7f070036 in package dev.helpme.jesus
android.content.res.Resources$NotFoundException: String resource ID #0x7f070036
at android.content.res.Resources.getText(Resources.java:299)
at android.app.ApplicationPackageManager.getText(ApplicationPackageManager.java:1155)
at android.content.pm.PackageItemInfo.loadLabel(PackageItemInfo.java:131)
at android.app.ApplicationPackageManager.getApplicationLabel(ApplicationPackageManager.java:1199)
at com.android.server.am.AppErrorDialog.<init>(AppErrorDialog.java:48)
at com.android.server.am.ActivityManagerService$MainHandler.handleMessage(ActivityManagerService.java:1364)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)
at com.android.server.ServiceThread.run(ServiceThread.java:46)
I've got the similar issue with
classpath 'com.android.tools.build:gradle:2.2.0-alpha3'
I tried with clean project, rebuild project, invalidate Android Studio cache. Still no luck /_\
But when I changed to
classpath 'com.android.tools.build:gradle:2.1.2'
The problem disappeared. Same code! All other settings same!
I think it was a bug in gradle build 2.2.0-alpha3
Always got problems with gradle alpha...