發表文章

目前顯示的是 1月, 2016的文章

Eclipse專案移植到Android Studio時發生META-INF/LICENSE.txt與suport-library-v4/v7內容重覆的問題

當我們想把使用Eclipse寫的code移植到Android Studio來開發,如果有當初在Eclipse把整個專案包成別的專案可以使用的Library(在Properties設定為"is Library"),整合之後程式碼都沒有出錯,但要Build apk時就有可能會看到類似的錯誤訊息: Error:Execution failed for task ':library:tools:transformResourcesWithMergeJavaResForRelease'. > com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE.txt File1:~/…/[ProjectName]/library/tools/libs/httpcore-4.1.4.jar File2:~/…/[ProjectName]/library/tools/libs/httpclient-4.1.3.jar File3:~/…/[ProjectName]/library/tools/libs/httpmime-4.1.3.jar 解決的方法是在Gradle裡面加上: packagingOptions { exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' } 但是要看發生重覆的檔案位置在哪,本例在Android Studio建立一個Library Project來放置當初在Eclipse的is Library Project,而出現重覆的地方是訊息指出的那三個jar檔,也是在Android Studio的Library專案(

升級SDK Build-tools 23.0.2之後會與Multidex發生衝突

當升級SDK Platform API 23之後,發現已經有Build-tools Version 23.0.2,想說就順便升級一下,結果就發生... Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/java'' finished with non-zero exit value 3 查詢的結果發現是與 Multidex 發生衝突了。由於之前在Build-tools 22.0.1就已經有使用了Multidex了,因此建議如果有要使用Multidex就先不要把Build-tools升級到23.0.2,就用Build-tools 22.0.1就好。在此提供升級SDK為23且可以使用Multidex在gradle的設定: android { compileSdkVersion 23 buildToolsVersion ' 22.0.1 ' defaultConfig { applicationId "com.ingree.cwwebsite" minSdkVersion 15 targetSdkVersion 23 // Enabling multidex support. multiDexEnabled true } dependencies { compile ' com.android.support:multidex:1.0.1 ' } 雖然在 Multidex 的Googl