Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
[Android Studio]java.lang.RuntimeException:无法实例化活动组件信息java.lang.ClassNotFoundException:在路径:DexPathList上_Android - Fatal编程技术网

[Android Studio]java.lang.RuntimeException:无法实例化活动组件信息java.lang.ClassNotFoundException:在路径:DexPathList上

[Android Studio]java.lang.RuntimeException:无法实例化活动组件信息java.lang.ClassNotFoundException:在路径:DexPathList上,android,Android,我有一个应用程序,它在android棒棒糖和更高版本中工作,如果我在android Kitkat设备中安装该应用程序,该应用程序将崩溃并显示错误,如下所示: java.lang.RuntimeException:无法实例化activity ComponentInfo{com.SplashActivity}:java.lang.ClassNotFoundException:在以下路径中未找到类“com.SplashActivity”:DexPathList[[zip文件”//data/app/co

我有一个应用程序,它在android棒棒糖和更高版本中工作,如果我在android Kitkat设备中安装该应用程序,该应用程序将崩溃并显示错误,如下所示:

java.lang.RuntimeException:无法实例化activity ComponentInfo{com.SplashActivity}:java.lang.ClassNotFoundException:在以下路径中未找到类“com.SplashActivity”:DexPathList[[zip文件”//data/app/com.partner-1.apk],nativeLibraryDirectories=[/data/app lib/com.partner-1,/system/lib]] 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2131)上 位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271) 在android.app.ActivityThread.access$800(ActivityThread.java:144) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) 位于android.os.Handler.dispatchMessage(Handler.java:102) 位于android.os.Looper.loop(Looper.java:136) 位于android.app.ActivityThread.main(ActivityThread.java:5146) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:515) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566) 在dalvik.system.NativeStart.main(本机方法) 原因:java.lang.ClassNotFoundException:在路径:DexPathList[[zip文件”//data/app/com.partner-1.apk],NativeLibraryDirectory=[/data/app-lib/com.partner-1,/system/lib]]上未找到类“com.SplashActivity” 位于dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:497) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:457) 位于android.app.Instrumentation.newActivity(Instrumentation.java:1061) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2122)上 位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271) 在android.app.ActivityThread.access$800(ActivityThread.java:144) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) 位于android.os.Handler.dispatchMessage(Handler.java:102) 位于android.os.Looper.loop(Looper.java:136) 位于android.app.ActivityThread.main(ActivityThread.java:5146) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:515) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566) 在dalvik.system.NativeStart.main(本机方法)


我做了很多尝试,但都没能解决它,大多数答案都是针对eclipse项目的。

启用api 21的原因是:

Android 5.0 (API level 21) and higher uses a runtime called ART which natively supports loading multiple DEX files from APK files. ART performs pre-compilation at app install time which scans for classesN.dex files and compiles them into a single .oat file for execution by the Android device. Therefore, if your minSdkVersion is 21 or higher, you do not need the multidex support library.
根据本指南:

我通过如下方式命名我的类,解决了“未找到类”错误:

[Activity(Name = "somepackage.custombuttonrenderer")]
public class CustomButtonRenderer: ButtonRenderer
{ }
以下是我的答案:

这对我来说很有效: 将此添加到应用程序类中

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(getBaseContext());
}
说明: Android应用程序(APK)文件包含Dalvik可执行文件(DEX)形式的可执行字节码文件,其中包含用于运行应用程序的编译代码。Dalvik可执行规范将单个DEX文件中可引用的方法总数限制为65536

Android 5.0(API级别21)之前的平台版本使用Dalv
implementation 'com.android.support:multidex:1.0.0'
@Override
public void onCreate() {
    super.onCreate();
    MultiDex.install(this);
}