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

Wei*_*Wen 15 android dex android-securityexception android-14

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

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

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

有谁知道这个问题的解决方案?

All*_*bas 5

我也遇到了这个问题,所以我查看了这个文档DexClassLoader,并决定这样做。

package com.example

import android.app.Application

class BaseApp : Application() {
    override fun onCreate() {
        super.onCreate()
         val dexOutputDir: File = codeCacheDir
         dexOutputDir.setReadOnly()
    }
}
Run Code Online (Sandbox Code Playgroud)

只需放入dexOutputDir.setReadOnly()我的应用程序即可解决问题

再次卸载并重新安装该应用程序

  • 当最新的官方播放广告库将 .jar 文件写入 /cache 时,这似乎并不能解决问题 (2认同)