Tencent / tinker

Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstall apk.
Other
17.13k stars 3.33k forks source link

java.io.IOException: Cannot run program "dex2oat": error=13, Permission denied #1466

Closed yanchunlan closed 3 years ago

yanchunlan commented 3 years ago

异常类型:下载补丁成功,但是执行合成patch最终上报合成失败,导致后面无法热更新此补丁 手机型号:华为mate30pro5G 手机系统版本:10 tinker版本:1.9.14.5 gradle版本:6.1.1 是否使用热更新SDK:TinkerPatch SDK 系统:安卓

2020-09-29 20:53:08.120 18701-18800/? I/Tinker.DefaultPatchReporter: patchReporter onPatchDexCompositeTime: 11413 2020-09-29 20:53:08.121 18701-18800/? D/Tinker.TinkerInternals: getCurrentInstructionSet:arm 2020-09-29 20:53:08.121 18701-18800/? I/Tinker.DexDiffPatchInternal: patch recover, try to optimize dex file count:1, optimizeDexDirectory:/data/user/0/com.xiatou.hlg/tinker/patch-001ac62a/odex/ 2020-09-29 20:53:08.122 18701-18800/? I/Tinker.DexDiffPatchInternal: start to parallel optimize dex /data/user/0/com.xiatou.hlg/tinker/patch-001ac62a/dex/tinker_classN.apk, size: 20627039 2020-09-29 20:53:08.122 18701-18800/? D/Tinker.ParallelDex: ======== start optimize dex============== 2020-09-29 20:53:08.126 18701-18800/? E/Tinker.ParallelDex: Failed to optimize dex: /data/user/0/com.xiatou.hlg/tinker/patch-001ac62a/dex/tinker_classN.apk java.io.IOException: Cannot run program "dex2oat": error=13, Permission denied at java.lang.ProcessBuilder.start(ProcessBuilder.java:1050) at com.kwai.hotfix.loader.TinkerDexOptimizer$OptimizeWorker.interpretDex2Oat(TinkerDexOptimizer.java:26) at com.kwai.hotfix.loader.TinkerDexOptimizer$OptimizeWorker.run(TinkerDexOptimizer.java:22) at com.kwai.hotfix.loader.TinkerDexOptimizer.optimizeAll(TinkerDexOptimizer.java:6) at com.kwai.hotfix.loader.TinkerDexOptimizer.optimizeAll(TinkerDexOptimizer.java:1) at com.kwai.hotfix.lib.patch.DexDiffPatchInternal.dexOptimizeDexFiles(DexDiffPatchInternal.java:13) at com.kwai.hotfix.lib.patch.DexDiffPatchInternal.patchDexExtractViaDexDiff(DexDiffPatchInternal.java:18) at com.kwai.hotfix.lib.patch.DexDiffPatchInternal.tryRecoverDexFiles(DexDiffPatchInternal.java:6) at com.kwai.hotfix.lib.patch.UpgradePatch.tryPatch(UpgradePatch.java:43) at com.kwai.hotfix.lib.service.HotFixPatchCore.doApplyPatch(HotFixPatchCore.java:15) at com.kwai.hotfix.lib.service.HotFixPatchService.onHandleIntent(HotFixPatchService.java:2) at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:78) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:219) at android.os.HandlerThread.run(HandlerThread.java:67) Caused by: java.io.IOException: error=13, Permission denied at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.(UNIXProcess.java:133) at java.lang.ProcessImpl.start(ProcessImpl.java:141) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) at com.kwai.hotfix.loader.TinkerDexOptimizer$OptimizeWorker.interpretDex2Oat(TinkerDexOptimizer.java:26)  at com.kwai.hotfix.loader.TinkerDexOptimizer$OptimizeWorker.run(TinkerDexOptimizer.java:22)  at com.kwai.hotfix.loader.TinkerDexOptimizer.optimizeAll(TinkerDexOptimizer.java:6)  at com.kwai.hotfix.loader.TinkerDexOptimizer.optimizeAll(TinkerDexOptimizer.java:1)  at com.kwai.hotfix.lib.patch.DexDiffPatchInternal.dexOptimizeDexFiles(DexDiffPatchInternal.java:13)  at com.kwai.hotfix.lib.patch.DexDiffPatchInternal.patchDexExtractViaDexDiff(DexDiffPatchInternal.java:18)  at com.kwai.hotfix.lib.patch.DexDiffPatchInternal.tryRecoverDexFiles(DexDiffPatchInternal.java:6)  at com.kwai.hotfix.lib.patch.UpgradePatch.tryPatch(UpgradePatch.java:43)  at com.kwai.hotfix.lib.service.HotFixPatchCore.doApplyPatch(HotFixPatchCore.java:15)  at com.kwai.hotfix.lib.service.HotFixPatchService.onHandleIntent(HotFixPatchService.java:2)  at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:78)  at android.os.Handler.dispatchMessage(Handler.java:110)  at android.os.Looper.loop(Looper.java:219)  at android.os.HandlerThread.run(HandlerThread.java:67)  2020-09-29 20:53:08.126 18701-18800/? I/Tinker.DexDiffPatchInternal: fail to parallel optimize dex /data/user/0/com.xiatou.hlg/tinker/patch-001ac62a/dex/tinker_classN.apk use time 4 2020-09-29 20:53:08.126 18701-18800/? I/Tinker.DefaultPatchReporter: patchReporter onPatchDexOptFail: dex opt fail path: /data/user/0/com.xiatou.hlg/tinker/patch-001ac62a/patch-001ac62a.apk, dex size: 1 2020-09-29 20:53:08.126 18701-18800/? E/Tinker.DefaultPatchReporter: onPatchDexOptFail: java.io.IOException: Cannot run

czn-xc commented 3 years ago

你好,这个问题怎么解决的

liuguangli commented 3 years ago

同问, 这个问题怎么解决?