【发布时间】:2015-06-21 11:27:30
【问题描述】:
我目前正在 Android Studio 中开发一个 Android 应用程序。我已将两个模块导入应用程序。下面的列表显示了项目的结构和我在应用程序中拥有的模块:
- Gradle 项目(youtube应用程序)
- 模块 #1 Gradle(YT SDK 字符串库)
- App Gradle(应用)
- 模块 #2 Gradle (vIMEOSDKStringLibrary)
当我尝试运行该应用程序时,我收到以下消息 gradle build,这显然显示了“意外顶级”异常:
输出: 意外的顶级异常: com.android.dex.DexException:多个dex文件定义LA$1; 在 com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) 在 com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) 在 com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) 在 com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) 在 com.android.dx.merge.DexMerger.merge(DexMerger.java:189) 在 com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) 在 com.android.dx.command.dexer.Main.runMonoDex(Main.java:303) 在 com.android.dx.command.dexer.Main.run(Main.java:246) 在 com.android.dx.command.dexer.Main.main(Main.java:215) 在 com.android.dx.command.Main.main(Main.java:106)
我已阅读有关该异常的信息。而且它是由库的重复版本引起的,我试图检查项目的 gradle 文件但无法修复它。我会一一列出gradle文件:
1) Gradle 项目(youtube应用程序)
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
2) Module #1 Gradle(YT SDK 字符串库)
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile files('libs/jsoup-1.7.3.jar')
compile files('libs/mobilecore.jar')
compile files('libs/vimeo_m_1_0_0_1.jar')
}
3) App Gradle(应用程序)
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion '21.1.2'
defaultConfig {
applicationId "com.me.thats.youtubeappliction"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.+'
compile 'com.melnykov:floatingactionbutton:1.2.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile project(':YT SDK String Library')
compile project(':vIMEOSDKStringLibrary')
}
4) 模块 #2 Gradle (vIMEOSDKStringLibrary)
apply plugin: 'com.android.library'
android {
compileSdkVersion 20
buildToolsVersion "19.1.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile files('libs/jsoup-1.7.3.jar')
compile files('libs/mobilecore.jar')
compile files('libs/vimeo_m_1_0_0_1.jar')
}
=========================
已编辑:
我刚刚运行了 Gradle 命令“:app:androidDependencies”来获取项目的依赖树。有人可以告诉我关于 Gradle 命令“:app:androidDependencies”的输出是否有什么可做的
10:52:36 PM: Executing external task ':app:androidDependencies'...
:app:androidDependencies
debug
+--- LOCAL: YouTubeAndroidPlayerApi.jar
+--- com.android.support:appcompat-v7:22.1.1
| \--- com.android.support:support-v4:22.1.1
| \--- LOCAL: internal_impl-22.1.1.jar
+--- com.melnykov:floatingactionbutton:1.2.0
| \--- com.android.support:recyclerview-v7:21.0.2
| \--- com.android.support:support-v4:22.1.1
| \--- LOCAL: internal_impl-22.1.1.jar
+--- youtubeappliction:YT SDK String Library:unspecified
| \--- LOCAL: ytsdk_4_0_M.jar
\--- youtubeappliction:vIMEOSDKStringLibrary:unspecified
+--- LOCAL: jsoup-1.7.3.jar
+--- LOCAL: mobilecore.jar
\--- LOCAL: vimeo_m_1_0_0_1.jar
debugTest
No dependencies
release
+--- LOCAL: YouTubeAndroidPlayerApi.jar
+--- com.android.support:appcompat-v7:22.1.1
| \--- com.android.support:support-v4:22.1.1
| \--- LOCAL: internal_impl-22.1.1.jar
+--- com.melnykov:floatingactionbutton:1.2.0
| \--- com.android.support:recyclerview-v7:21.0.2
| \--- com.android.support:support-v4:22.1.1
| \--- LOCAL: internal_impl-22.1.1.jar
+--- youtubeappliction:YT SDK String Library:unspecified
| \--- LOCAL: ytsdk_4_0_M.jar
\--- youtubeappliction:vIMEOSDKStringLibrary:unspecified
+--- LOCAL: jsoup-1.7.3.jar
+--- LOCAL: mobilecore.jar
\--- LOCAL: vimeo_m_1_0_0_1.jar
BUILD SUCCESSFUL
Total time: 3.448 secs
10:52:40 PM: External task execution finished ':app:androidDependencies'.
注意:当我导入模块 #2 时会出现此问题。当我删除它时,一切都很好。
提前致谢
【问题讨论】:
标签: android android-studio android-gradle-plugin