使用Android 14开发应用时遇到的问题

问题描述 投票:0回答:1

我发现在我的应用程序达到相当大小(例如通过添加多个库)后,运行应用程序会抛出 java.lang.SecurityException: writable dex file '.../code_cache/.overlay/base.apk/classes2.dex'是不允许的。

如果我然后删除大部分库,只留下默认添加的库,然后再次运行,它就可以工作。但是,如果我添加一点代码(例如日志),它可能会因相同的错误而失败。

如果我希望它运行时不出现此错误,我必须卸载该应用程序,然后从 Android Studio 再次运行。这非常不方便,因为每次我进行一些更改时,我都必须卸载该应用程序。我无法想象会有人愿意开发这样的 Android 应用程序。

有谁知道这个问题的解决办法吗?

android dex android-securityexception android-14
1个回答
0
投票

在 android 14 模拟器上测试我的应用程序时,我遇到了同样的错误。

DexClassLoader
只允许使用只读 dex 文件。所以我用
File("path/to/abc.dex").setReadOnly()
来解决我的问题。

从您的日志

../code_cache/.../classes2.dex
来看,您的代码或依赖项中可能使用了某种 dex 加载。因此,您应该在加载这些 dex 文件之前将其设置为只读。

© www.soinside.com 2019 - 2024. All rights reserved.