java.lang.ClassNotFoundException: 未在路径 DexPathList 上找到 class,更新 sdk 后
java.lang.ClassNotFoundException: Didn't find class on path: DexPathList , After updating sdk
大家好我的应用程序直到昨天都运行良好,我昨天更新了我的 SDK,它首先开始出错它给出了一个错误
No resource found at values v24 ....
像这样的事情我搜索并通过更改 build.gradle
中的以下行解决了它
compileSdkVersion 25
buildToolsVersion '25.0.2'
现在错误消失了 运行在 更高 android 版本 7.1.1[=42 中完全没问题=]
但是当我 运行 在 android 的较低版本 中时,它给出以下 error
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.wowio.ebookreader, PID: 15469
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.wowio.ebookreader/com.eminosoft.ebookread.activity.SplashScreenActivity}: java.lang.ClassNotFoundException: Didn't find class "com.eminosoft.ebookread.activity.SplashScreenActivity" on path: DexPathList[[zip file "/data/app/com.wowio.ebookreader-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.wowio.ebookreader-1, /vendor/lib, /system/lib]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2378)
at android.app.ActivityThread.access0(ActivityThread.java:155)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5433)
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:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.eminosoft.ebookread.activity.SplashScreenActivity" on path: DexPathList[[zip file "/data/app/com.wowio.ebookreader-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.wowio.ebookreader-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.newActivity(Instrumentation.java:1068)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2186)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2378)
at android.app.ActivityThread.access0(ActivityThread.java:155)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5433)
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:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(Native Method)
我已经尝试以下事情
1.Clean 项目
2.invalidate缓存/重启
3.The 删除设备上的应用程序
已经看过这些问题Question 1 , Question 2没有任何效果。我该如何解决这个问题?
如果你有什么需要我会及时更新
我的build.gradle文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion '25.0.2'
defaultConfig {
applicationId "com.wowio.ebookreader"
minSdkVersion 14
targetSdkVersion 23
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
dexOptions {
javaMaxHeapSize "4g"
}
}
dependencies {
compile 'com.android.support:appcompat-v7:+'
compile 'com.google.android.gms:play-services:+'
compile 'com.android.support:multidex:1.0.1'
// the are many more dependencies i removed to decrease size
}
写一个 class EnableMultiDex
如下所示
public class EnableMultiDex extends MultiDexApplication {
private static EnableMultiDex enableMultiDex;
public static Context context;
public EnableMultiDex(){
enableMultiDex=this;
}
public static EnableMultiDex getEnableMultiDexApp() {
return enableMultiDex;
}
@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
}
}
并在 AndroidManifest.xml
中将此 class 写入应用程序标签
<application
android:name="YourPakageName.EnableMultiDex"
android:hardwareAccelerated="true"
android:icon="@drawable/launch_logo"
android:label="@string/app_name"
android:largeHeap="true"
tools:node="replace">
是的,上面的答案可能是正确的我没有按原样尝试。但我以相反的方式解决了 "You remove the instant run option in the settings of android studio"
转到 --> 文件菜单 --> select 设置 --> select 构建、执行、部署 -->select 即时 运行 -- > 取消勾选 "enable instant run".
它对我有用。但一些应用程序如 google 地图集成应用程序需要 Instant 运行.
同样的错误发生在我身上,因为我安装了在 outputs\apk 文件夹中创建的调试 apk,它变得更小并且缺少 类 因为它可能是瞬间的结果 运行。
因此,与其关闭即时 运行,不如关闭构建 APK(通过菜单中的构建->构建 apk)并使用这个。
就我而言,我的项目在以下时间后再次开始工作:
- 从模拟器(或真实设备)卸载我的项目
- 清理项目
- 制作项目
禁用即时 运行 对我有用
我认为出现此问题是因为在使用安装 运行(减少 apk 大小)
构建时缺少某些 class
大家好我的应用程序直到昨天都运行良好,我昨天更新了我的 SDK,它首先开始出错它给出了一个错误
No resource found at values v24 ....
像这样的事情我搜索并通过更改 build.gradle
中的以下行解决了它compileSdkVersion 25
buildToolsVersion '25.0.2'
现在错误消失了 运行在 更高 android 版本 7.1.1[=42 中完全没问题=] 但是当我 运行 在 android 的较低版本 中时,它给出以下 error
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.wowio.ebookreader, PID: 15469
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.wowio.ebookreader/com.eminosoft.ebookread.activity.SplashScreenActivity}: java.lang.ClassNotFoundException: Didn't find class "com.eminosoft.ebookread.activity.SplashScreenActivity" on path: DexPathList[[zip file "/data/app/com.wowio.ebookreader-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.wowio.ebookreader-1, /vendor/lib, /system/lib]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2378)
at android.app.ActivityThread.access0(ActivityThread.java:155)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5433)
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:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.eminosoft.ebookread.activity.SplashScreenActivity" on path: DexPathList[[zip file "/data/app/com.wowio.ebookreader-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.wowio.ebookreader-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.newActivity(Instrumentation.java:1068)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2186)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2378)
at android.app.ActivityThread.access0(ActivityThread.java:155)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5433)
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:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(Native Method)
我已经尝试以下事情
1.Clean 项目
2.invalidate缓存/重启
3.The 删除设备上的应用程序
已经看过这些问题Question 1 , Question 2没有任何效果。我该如何解决这个问题?
如果你有什么需要我会及时更新
我的build.gradle文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion '25.0.2'
defaultConfig {
applicationId "com.wowio.ebookreader"
minSdkVersion 14
targetSdkVersion 23
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
dexOptions {
javaMaxHeapSize "4g"
}
}
dependencies {
compile 'com.android.support:appcompat-v7:+'
compile 'com.google.android.gms:play-services:+'
compile 'com.android.support:multidex:1.0.1'
// the are many more dependencies i removed to decrease size
}
写一个 class EnableMultiDex
如下所示
public class EnableMultiDex extends MultiDexApplication {
private static EnableMultiDex enableMultiDex;
public static Context context;
public EnableMultiDex(){
enableMultiDex=this;
}
public static EnableMultiDex getEnableMultiDexApp() {
return enableMultiDex;
}
@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
}
}
并在 AndroidManifest.xml
中将此 class 写入应用程序标签
<application
android:name="YourPakageName.EnableMultiDex"
android:hardwareAccelerated="true"
android:icon="@drawable/launch_logo"
android:label="@string/app_name"
android:largeHeap="true"
tools:node="replace">
是的,上面的答案可能是正确的我没有按原样尝试。但我以相反的方式解决了 "You remove the instant run option in the settings of android studio"
转到 --> 文件菜单 --> select 设置 --> select 构建、执行、部署 -->select 即时 运行 -- > 取消勾选 "enable instant run".
它对我有用。但一些应用程序如 google 地图集成应用程序需要 Instant 运行.
同样的错误发生在我身上,因为我安装了在 outputs\apk 文件夹中创建的调试 apk,它变得更小并且缺少 类 因为它可能是瞬间的结果 运行。 因此,与其关闭即时 运行,不如关闭构建 APK(通过菜单中的构建->构建 apk)并使用这个。
就我而言,我的项目在以下时间后再次开始工作:
- 从模拟器(或真实设备)卸载我的项目
- 清理项目
- 制作项目
禁用即时 运行 对我有用 我认为出现此问题是因为在使用安装 运行(减少 apk 大小)
构建时缺少某些 class