fengcunhan / Hotpatch-Sample

The example of Hotpatch
MIT License
48 stars 23 forks source link

cannot run #1

Open lostoy0 opened 8 years ago

lostoy0 commented 8 years ago

Error:Execution failed for task ':app:dexDebug'.

com.android.ide.common.internal.LoggedErrorException: Failed to run command: /Users/MLS/Development/sdk/build-tools/22.0.1/dx --dex --no-optimize --output /Users/MLS/Development/Projects/opensource/Hotpatch-Sample/dexposedexamples/app/build/intermediates/dex/debug --input-list=/Users/MLS/Development/Projects/opensource/Hotpatch-Sample/dexposedexamples/app/build/intermediates/tmp/dex/debug/inputList.txt Error Code: 2 Output: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lcom/taobao/patch/IPatch; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) at com.android.dx.merge.DexMerger.merge(DexMerger.java:189) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303) at com.android.dx.command.dexer.Main.run(Main.java:246) at com.android.dx.command.dexer.Main.main(Main.java:215) at com.android.dx.command.Main.main(Main.java:106)

lostoy0 commented 8 years ago

发现inputList.txt文件里面有两个重复的patchloader.jar,我删除主工程patchloader.jar就好了,但是hotpatch工程里libs/patchloader.jar已经在build.gradle里面配置为provided的了,为什么还会出现重复?

后来发现在debug模式会报这个错,打正式包并不会冲突。

/Users/MLS/Development/Projects/opensource/Hotpatch-Sample/dexposedexamples/app/build/intermediates/classes/debug /Users/MLS/Development/Projects/opensource/Hotpatch-Sample/dexposedexamples/app/build/intermediates/pre-dexed/debug/patchloader-7541abe62975ed17327a4714ba298f89c2c9ac7b.jar /Users/MLS/Development/Projects/opensource/Hotpatch-Sample/dexposedexamples/app/build/intermediates/pre-dexed/debug/patchloader-416b063ff58252849601c66c344ba6082e114c78.jar /Users/MLS/Development/Projects/opensource/Hotpatch-Sample/dexposedexamples/app/build/intermediates/pre-dexed/debug/classes-0b61d0c2567a6cdf3f40adfaa7a86f17dd372e6c.jar /Users/MLS/Development/Projects/opensource/Hotpatch-Sample/dexposedexamples/app/build/intermediates/pre-dexed/debug/dexposedbridge-024c81f93e55978abd4e70d661c710486e5b31cf.jar

lostoy0 commented 8 years ago

我的解决办法是,把主工程把patchloader相关jar包或者源码删除,在引用的 hotpatch工程里把provided ‘libs/patchloader.jar'改为'compile libs/patchloader.jar'

fengcunhan commented 8 years ago

This problem cause by hotpatch.aar,the jar files in libs always package in aar.