所以我最近更新到 Android Studio 4.1 并将我的项目更新到 Android 10。从那时起,调试应用程序构建工作正常,但每当我在 Android 设备上启动构建的 APK 时,我都会收到以下错误:
FATAL EXCEPTION: main
Process: com.cookiegames.smartcookie, PID: 12800
java.lang.IllegalAccessError: Illegal class access: 'androidx.appcompat.widget.ContentFrameLayout' attempting to access 'androidx.appcompat.app.w' (declaration of 'androidx.appcompat.widget.ContentFrameLayout' appears in base.apk)
at androidx.appcompat.widget.ContentFrameLayout.onAttachedToWindow(Unknown Source:7)
at android.view.View.dispatchAttachedToWindow(View.java:18347)
... and so on
我已回滚到 Android Studio 4.0 并将我的项目移回 SDK 29,但错误仍然存在。我不知道接下来要尝试什么。
最佳答案
更新:
@headsvk 答案现在是正确的。 Android Studio 没有自动提示我更新 gradle,所以我必须手动进行。你必须使用 gradle 6.5.1
(在 gradle-wrapper.properties
文件中更改)然后更改 com.android.tools.build:gradle
版本为 4.1.1
(在项目根目录下的 build.gradle
文件中)。清理并重建项目,它应该被修复。
旧答案:
我找到了一种临时方法来为自己解决这个问题。我意识到禁用 proguard 可以解决问题。所以我只是添加了一条规则告诉proguard保留androidx.appcompat
类(class)。
为此,只需将这行代码添加到 proguard-rules.pro
文件:
-keep class androidx.appcompat.** { *; }
关于Android APK 在启动时崩溃并出现 'Illegal class access' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64451106/