【Android-tips】 Unable to execute dex: Multiple dex files define 解決方法

李博Garvin發表於2014-08-26

    唔,之前已經想過今後不動android,沒想到還是因為比賽的原因重操舊業。android有很多問題是由於eclipse的不完善造成的,比如今天遇到的這個問題 Unable to execute dex: Multiple dex files define

[2011-10-23 16:23:29 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
[2011-10-23 16:23:29 - myProj] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
       

     好了,造成這個問題的原因呢,每個人應該遇到的問題不一樣,但是都是因為eclipse編譯器造成的,可以參考一下兩個文章(1.http://blog.csdn.net/asan855/article/details/7568702  2.http://stackoverflow.com/questions/7870265/unable-to-execute-dex-multiple-dex-files-define-lcom-myapp-rarray)

 

下面說下我的想法和解決方案:


原因一:因為apk編譯出現問題

解決方法:直接刪除bin檔案,eclipse在編譯的時候會再為你自動生成,如果沒有就重啟eclipse


原因二:包名重複

解決方法:包名重複有兩種可能。

                   1,其一是兩個jar名字一樣,在lib裡可以看一下,如果有一樣的就刪掉一個。

                   2.   這種情況是大家要注意的。有的時候jar名明明不同,但是也會報這個錯,因為兩個jar裡面的包名有相同的。這就要求我們開啟jar,看看裡面的包名是不是重複。

                     如下圖是比對,Android_Services_2.2.0.jar和Android_Location_V1.1.2.jar,兩者沒有相同的包。



一些思考:在做程式的時候,遇到bug還是要自己從原理來理解找辦法,像是我上面第二條提到的情況,stackoverflow裡其實也沒交代,有的東西還是要自己多想,不要一味的上網找答案,特別是在操作蛋疼的android時。


/********************************

* 本文來自部落格  “李博Garvin“

* 轉載請標明出處:http://blog.csdn.net/buptgshengod

******************************************/


相關文章