我对Gradle很新。当我做
时,我的项目正在编译文件./gradlew assembleDebug
但是当我尝试运行测试时却没有:
./gradlew connectedCheck
我得到(其中几个):
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Lcom/facebook/AccessToken$SerializationProxyV1;
at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
at com.android.dx.command.dexer.Main.processClass(Main.java:490)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:459)
at com.android.dx.command.dexer.Main.access$400(Main.java:67)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:398)
at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
at com.android.dx.command.dexer.Main.processOne(Main.java:422)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:333)
at com.android.dx.command.dexer.Main.run(Main.java:209)
at com.android.dx.command.dexer.Main.main(Main.java:174)
at com.android.dx.command.Main.main(Main.java:91)
这是我项目的结构:
main app depends on:
compile 'com.android.support:support-v4:18.0.+'
compile 'com.android.support:gridlayout-v7:18.0.+'
compile 'com.google.code.gson:gson:1.7.2'
compile 'com.jakewharton:butterknife:2.0.1'
compile 'com.squareup.retrofit:retrofit:1.1.1'
compile 'com.squareup:otto:1.3.4'
compile 'com.squareup.okhttp:okhttp:1.2.0'
compile project(':Library:mylib')
mylib depends on:
compile 'com.android.support:support-v4:18.0.+'
compile files('libs/facebooksdk.jar')
compile files('libs/libGoogleAnalyticsV2.jar')
来自mylib的每个罐子的异常,在这一行之后:
:Library:mylib:dexTest
任何想法?
答案 0 :(得分:0)
多次引用库时会发生已添加的错误。我要做的是将编译项目设置为应用程序中的第一个编译元素,并删除重复的支持库:
app depends on:
compile project(':Library:mylib')
compile 'com.google.code.gson:gson:1.7.2'
compile 'com.jakewharton:butterknife:2.0.1'
compile 'com.squareup.retrofit:retrofit:1.1.1'
compile 'com.squareup:otto:1.3.4'
compile 'com.squareup.okhttp:okhttp:1.2.0'
lib depends on:
compile 'com.android.support:support-v4:18.0.+'
compile files('libs/facebooksdk.jar')
compile files('libs/libGoogleAnalyticsV2.jar')
答案 1 :(得分:0)
我遇到了同样的错误,但already added:
背后的消息略有不同。这是关于重复的support-v4
。我要解决的是:
compile('de.keyboardsurfer.android.widget:crouton:1.8.1') {
exclude(group: 'com.google.android', module: 'support-v4')
}
希望它能为您找到解决问题的新方向。
<强>更新强>
对不起,我没有仔细阅读你的问题。事实证明你遇到了connectedCheck
任务的问题。我正在运行gradle build
。现在,当我运行gradle connectedCheck
时,我只是遇到了同样的错误。我甚至尝试使用IDE,但没有一个能够工作。
这里实际上也讨论了https://code.google.com/p/android/issues/detail?id=61429。由于the comment #8,如果您移动到app文件夹并运行上面的任务,则可以进行管理。假设app
文件夹为app-project/app
,则将库放入app-projecct/libraries/my-lib-1
。以前,我在app-project
中运行并失败。
希望它能解决。