將Eclipse項目轉換成AndroidStudio項目過程中遇到的問題以及解決方法


將Eclipse項目轉換成AndroidStudio項目也不是第一次了,昨天轉的時候遇到幾個問題:

首先將項目導入androidstudio,導完后報錯:

問題一

Error:java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException:

Error:Execution failed for task ':app:mergeDebugResources'.
> Error: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException:

問題原因:咋一看是concurrent並發包報的異常,肯定會有很多種情況可以導致這個異常。我遇到的是.9圖導致的這個問題。androidstudio會對.9圖作嚴格的檢查,不滿足格式的.9圖不會通過編譯;

很明顯這幅圖不是.9,名字卻為:unread_dot.9.png,於是編譯不通過;

解決辦法:網上有通過改配置比如:http://www.jianshu.com/p/f046b3f49e49;http://www.cnblogs.com/wangfeng520/p/6119531.html

改配置我沒試過,我直接使用androidstudio自帶的draw9patch來把問題圖片修改成了.9.png圖片;

問題二

Error:(1, 1) 錯誤: 非法字符: '\ufeff'

Error:(1, 10) 錯誤: 需要class, interface或enum

 問題原因:Eclipse可以智能的把UTF-8+BOM文件轉為普通的UTF-8文件,Android Studio不行,所以編譯時出現錯誤

 解決方法 用其他文檔編輯工具將UTF-8+BOM編碼的文件轉為普通的UTF-8文件。比如我用EdItPlus打開文件:file-->save as-->選擇UTF-8編碼,覆蓋保存

 

 

問題三

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE
 File1: C:\Users\Administrator\Desktop\Qhfpsj\FirstSecretaryShowInfo\LandPatrolSys\app\libs\jackson-core-1.9.5.jar
 File2: C:\Users\Administrator\Desktop\Qhfpsj\FirstSecretaryShowInfo\LandPatrolSys\app\libs\jackson-mapper-1.9.5.jar

 問題原因看起來是因為多個 jar 包里包含了同樣的文件(LICENSE.txt),導致打包時因為擔心相互覆蓋問題而提示出錯。

 

 解決方法 試下在 app 下的 build.gradle 中的 android 部分增加一段配置,如下面這段代碼所示:

packagingOptions {     exclude 'META-INF/LICENSE' }

 繼續報錯:

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LGPL2.1
 File1: C:\Users\Administrator\Desktop\Qhfpsj\FirstSecretaryShowInfo\LandPatrolSys\app\libs\jackson-core-1.9.5.jar
 File2: C:\Users\Administrator\Desktop\Qhfpsj\FirstSecretaryShowInfo\LandPatrolSys\app\libs\jackson-mapper-1.9.5.jar

那就再加一句:exclude 'META-INF/LGPL2.1'

然后再編譯,項目就可以跑起來了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM