报错‘Writable dex file is not allowed’,任务列表数据库作业排查求助
解决"Writable dex file '/data/data/com.example.tasklist/code_cache/.overlay/base.apk/classes3.dex' is not allowed"错误
Writable dex file '/data/data/com.example.tasklist/code_cache/.overlay/base.apk/classes3.dex' is not allowed.
以下是几个直接的排查和解决方向:
- 关闭Android Studio的即时运行(Instant Run):打开Settings > Build, Execution, Deployment > Instant Run,取消所有勾选,然后执行Clean Project再Rebuild Project。这个功能生成的可写dex文件是触发该错误的常见原因。
- 核对Module级别的
build.gradle配置:- 检查多dex配置:如果启用了
multiDexEnabled true,确认Application类是否继承MultiDexApplication,或者在attachBaseContext方法里调用MultiDex.install(this)。 - 查看
dexOptions里的设置,避免preDexLibraries这类可能导致多dex异常的配置。
- 检查多dex配置:如果启用了
- 彻底清理缓存:点击Build > Clean Project,再通过File > Invalidate Caches... > 选择Invalidate and Restart重启IDE,同时可以手动删除手机上该app的缓存和数据。
- 更换测试环境:如果用模拟器,换个不同版本的Android系统镜像;如果是真机,重启设备后重新安装app,部分设备的系统沙箱限制会拦截这类可写dex操作。
- 检查动态加载逻辑:再仔细过一遍PPT里的代码,有没有隐含的动态加载dex的代码,高版本Android(API 26+)严格限制私有目录下的dex写入操作。
内容的提问来源于stack exchange,提问作者MysticSticker
相关产品推荐
相关产品推荐

