OSChina Android APP 導入到Android Studio中不能運行,發現一小插曲。
主要實現了開源中國社區 OSC Android 客戶端項目源碼通過Gradle方式編譯 在 Android Studio運行並模擬。
出現這個報錯:
Error:duplicate files during packaging of APK /Users/lixiphp/AndroidStudioProjects/oschina-android/app/build/outputs/apk/app-debug-unaligned.apk
Error:Execution failed for task ‘:app:packageDebug’.
> Duplicate files copied in APK META-INF/NOTICE.txt
File 1: /Users/lixiphp/AndroidStudioProjects/oschina-android/app/libs/commons-httpclient-3.1.jar
File 2: /Users/lixiphp/AndroidStudioProjects/oschina-android/app/libs/commons-httpclient-3.1.jar
這個APP運行的環境是在SDK API 15,如果你改為19或者更高是會報錯的。
JDK=1.6
target=android-15
解決方法
在gradle配置文件加入:
android {
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' exclude 'META-INF/dependencies.txt' exclude 'META-INF/LGPL2.1' } }
在運行一次APP即可以成功編譯。
APP build.gradle 配置文件內容為:
apply plugin: 'android'
android {
compileSdkVersion 15 buildToolsVersion "20.0.0" defaultConfig { applicationId "net.oschina.app" minSdkVersion 9 targetSdkVersion 19 } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } android { packagingOptions { exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' exclude 'META-INF/dependencies.txt' exclude 'META-INF/LGPL2.1' } } } dependencies { compile files('libs/Android_SDK_v1.2_Fix.jar') compile files('libs/commons-httpclient-3.1.jar') compile files('libs/core-2.3.0.jar') compile files('libs/httpmime-4.1.3.jar') compile files('libs/libammsdk.jar') }