简体   繁体   English

降低 minSdkVersion

[英]Lowering minSdkVersion


I made an application but I set minSdkVersion 28 and my app doesn't work on most of the devices 我制作了一个应用程序,但我将 minSdkVersion 设置为 28 并且我的应用程序在大多数设备上都不起作用
and now i'm trying to lower minSdkVersion to 26 but I run into this error and I really can't solve this. 现在我试图将 minSdkVersion 降低到 26,但我遇到了这个错误,我真的无法解决这个问题。
I hope that you guys can help me out with this. 我希望你们能帮我解决这个问题。
I also inform you that when I switch minSdkVersion back to 28 I have no error. 我还通知您,当我将 minSdkVersion 切换回 28 时,我没有错误。
 E/AndroidRuntime: FATAL EXCEPTION: main Process: DIRECT, PID: 24778 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{DIRECT/DIRECT.a_home_activity}: java.lang.ClassNotFoundException: Didn't find class "DIRECT.a_home_activity" on path: DexPathList[[zip file "/data/app/DIRECT-fFtl3y4AoyQ_ZmSr7m-ynQ==/base.apk"],nativeLibraryDirectories=[/data/app/DIRECT-fFtl3y4AoyQ_ZmSr7m-ynQ==/lib/x86, /system/lib, /vendor/lib]] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2718) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) Caused by: java.lang.ClassNotFoundException: Didn't find class "DIRECT.a_home_activity" on path: DexPathList[[zip file "/data/app/DIRECT-fFtl3y4AoyQ_ZmSr7m-ynQ==/base.apk"],nativeLibraryDirectories=[/data/app/DIRECT-fFtl3y4AoyQ_ZmSr7m-ynQ==/lib/x86, /system/lib, /vendor/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at android.app.Instrumentation.newActivity(Instrumentation.java:1173) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2708) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) Suppressed: java.io.IOException: Failed to open dex files from /data/app/DIRECT-fFtl3y4AoyQ_ZmSr7m-ynQ==/base.apk because: Failure to verify dex file '/data/app/DIRECT-fFtl3y4AoyQ_ZmSr7m-ynQ==/base.apk': Bad method handle type 7 at dalvik.system.DexFile.openDexFileNative(Native Method) at dalvik.system.DexFile.openDexFile(DexFile.java:353) at dalvik.system.DexFile.<init>(DexFile.java:100) at dalvik.system.DexFile.<init>(DexFile.java:74) at dalvik.system.DexPathList.loadDexFile(DexPathList.java:374) at dalvik.system.DexPathList.makeDexElements(DexPathList.java:337) at dalvik.system.DexPathList.<init>(DexPathList.java:157) at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:65) at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64) at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43) at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:69) at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:36) at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:676) at android.app.LoadedApk.getClassLoader(LoadedApk.java:709) at android.app.LoadedApk.getResources(LoadedApk.java:936) at android.app.ContextImpl.createAppContext(ContextImpl.java:2242) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5672) at android.app.ActivityThread.-wrap1(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661) ... 6 more

My application for Android 8+ 我的 Android 8+ 应用程序

int main(void) { printf("Thank you for your help!\\n"); return 0; }

尝试使用File -> Invalide Cache 并重新启动

I took off some of the functions used at SKD 28+ and problem solved.我去掉了 SKD 28+ 使用的一些功能,问题解决了。 Apparently, Android Studio and its compiler cannot understand that I separate the functions depending on the sdkVersion = Build.VERSION.SDK_INT and it crashes even if shouldn't.显然,Android Studio 及其编译器无法理解我根据 sdkVersion = Build.VERSION.SDK_INT 分离功能,即使不应该崩溃,它也会崩溃。 Thanks for the help.谢谢您的帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM