我的Android应用程序是一个简单的登录/注册应用程序。
运行代码时遇到的错误是:
错误:任务':app:transformResourcesWithMergeJavaResForDebug'执行失败。 com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException:在APK org / apache / http / version.properties中复制的重复文件
File1:C:\ Users \ Admin \ AndroidStudioProjects \ App \ app \ libs \ apache-httpcomponents-httpcore.jar File2:C:\ Users \ Admin \ AndroidStudioProjects \ App \ app \ libs \ http-core-4.1.jar
文件1和文件2是我包含在libs文件夹中的库。
我的AndroidManifest.xml
文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.admin.app">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
android:label="App">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我的app/build.gradle
文件:
apply plugin: 'com.android.application'
android {
useLibrary 'org.apache.http.legacy'
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "com.example.admin.app"
minSdkVersion 14
targetSdkVersion 26
versionCode 1
versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
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.+'
testCompile 'junit:junit:4.12'
compile files('libs/apache-httpcomponents-httpcore.jar')
compile files('libs/httpclient-4.0.3.jar')
compile files('libs/http-core-4.1.jar')
compile 'com.android.support:multidex:1.0.0' }
}
修改-1:
我覆盖了库文件并运行了代码并得到了这个错误:
错误:任务&#39;:app:transformClassesWithJarMergingForDebug&#39;执行失败。 com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:org / apache / http / ProtocolException.class
请帮忙。谢谢!
答案 0 :(得分:0)
根据错误日志,您的最终APK包含重复文件,这通常意味着您的2个依赖项在最终APK中添加了2个相同的文件以导致此问题。
您可以通过在build.gradle
文件中添加以下内容,在最终APK中排除特定文件:
android {
packagingOptions {
exclude '...'
}
}
将此添加到build.gradle
中,并且不要忘记将“...”替换为重复文件的名称(它需要绝对路径)。
PS:我建议使用Retrofit library在Android应用中执行网络连接