Android 添加AAR和JAR时重复类条目
我有一个Android 添加AAR和JAR时重复类条目,android,jar,aar,Android,Jar,Aar,我有一个Java库,它被打包在JAR中,放在Android库中。然后将Android库打包为AAR并放入Android应用程序 在尝试启动Android应用程序时,出现以下错误: java.lang.NoClassDefFoundError: Failed resolution of: Lorg/slf4j/LoggerFactory; Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
Java
库,它被打包在JAR
中,放在Android库中。然后将Android库
打包为AAR
并放入Android应用程序
在尝试启动Android应用程序时,出现以下错误:
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/slf4j/LoggerFactory;
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/.../AuthenticationOptions$1.class
SLF4J是Java库
中的一个依赖项。这向我们展示了Android AAR并没有带来Java库中的依赖项(我通过谷歌搜索这个问题了解到了这一点)
因此-然后我决定,如果不带依赖项,我会将Java库
和Android库
添加到Android应用程序
当我现在运行Android应用程序
时,出现以下错误:
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/slf4j/LoggerFactory;
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/.../AuthenticationOptions$1.class
两种方法都不行
Android应用程序
Gradle:
应用插件:“com.android.application”
android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
defaultConfig {
applicationId "my.application.id"
minSdkVersion 15
targetSdkVersion 24
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
disable 'InvalidPackage'
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
}
repositories {
flatDir {
dirs 'libs'
}
}
}
dependencies {
compile(name:'android-library', ext:'aar')
compile files('libs/java-library.jar')
compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.android.support:cardview-v7:24.1.1'
compile 'com.android.support:design:24.1.1'
compile 'com.android.support:support-v4:24.1.1'
compile group: 'org.apache.httpcomponents', name: 'httpclient-android', version: '4.3.5.1'
compile group: 'commons-codec', name: 'commons-codec', version: '1.5'
testCompile 'junit:junit:4.12'
}
如果任何第三方库包含SLF4J,则无需在build中添加外部内容。gradleI不知道您的意思。请详细说明,你的身材在哪里,格雷德尔?邮递it@MD我已经添加了Android应用程序的Gradle文件。@MD按照教程进行操作,但是,当我得到Android库
时,它现在将Java库
添加为JAR
项目,它无法复制依赖项。。。