androidstudio:即使使用排除修复程序也可以复制文件



我突然在构建应用程序时遇到了问题。

错误:

Error:Execution failed for task  
Duplicate files copied in APK lib/x86_64/libogg.so
File1: C:Usersname.androidbuild-cache72c018be052ae391eef4ab43483d6a04be10a818outputjni
File2: C:Usersname.androidbuild-cache425f82e82c18acce2ff0ced2ade670804d31a815outputjni

我尝试使用包装选项修复:

packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LGPL2.1'
}

整个文件

apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LGPL2.1'
}
defaultConfig {
applicationId "myappsid"
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.0.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:design:26.0.1'
compile 'com.android.support:support-v4:26'
compile 'com.android.support:support-vector-drawable:26'
compile 'org.apache.commons:commons-io:1.3.2'
compile 'com.google.android.gms:play-services-ads:11.0.4'
compile 'com.ibm.watson.developer_cloud:android-sdk:0.4.2'
compile 'com.ibm.watson.developer_cloud:java-sdk:3.9.1'
testCompile 'junit:junit:4.12'
compile project(':library-release')
}

任何帮助都将不胜感激。我在我发现的其他帖子中也尝试了更长时间的排除选项,但这也没有帮助。

您可以尝试在packagingOptions中使用pickFirst。您需要从File1File2中获得libogg.so的正确包名:

packagingOptions {
pickFirst 'com/library/name/lib/x86_64/libogg.so'
...
}

更新

存在冲突的依赖关系:

compile 'com.ibm.watson.developer_cloud:android-sdk:0.4.2'
compile 'com.ibm.watson.developer_cloud:java-sdk:3.9.1'

从Watson Developer Cloud Java SDK文档中,您可以找到以下内容:

Android SDK利用Java SDK制作特定于Android的附加功能。此存储库可在此处找到。它取决于OkHttp和gson。

,它指向第一个库。所以,你应该只使用:

compile 'com.ibm.watson.developer_cloud:android-sdk:0.4.2'

相关内容

最新更新