Cat*_*ine 3 android android-studio
我正在将一个项目从 Eclipse 迁移到 Android Studio,但遇到了问题。我有很多在不同项目之间共享的库模块,并且其中几个库模块具有相同的包名称,因此最终出现以下错误:
AGPBI: {"kind":"SIMPLE","text":"com.android.dex.DexException: Multiple dex files define Lcom/foo/bar/BuildConfig;","position":{},"original":"com.android.dex.DexException: Multiple dex files define Lcom/foo/bar/BuildConfig;"}
Run Code Online (Sandbox Code Playgroud)
我的依赖关系很好,所以这不是问题:
compile - Classpath for compiling the main sources.
+--- project :project1
| +--- com.mixpanel.android:mixpanel-android:4.6.0
| \--- com.google.android.gms:play-services-gcm:7.5.0
| \--- com.google.android.gms:play-services-base:7.5.0
| \--- com.android.support:support-v4:22.0.0
| \--- com.android.support:support-annotations:22.0.0
+--- project :facebook
| \--- com.parse.bolts:bolts-android:1.1.4
+--- com.google.android.gms:play-services-location:7.5.0
| \--- com.google.android.gms:play-services-maps:7.5.0
+--- project :project2
| \--- project :project3
| \--- project :project4
| \--- project :project5
+--- project :project6
\--- project :project7
Run Code Online (Sandbox Code Playgroud)
但是,当我在我的目录中搜索 BuildConfig.java 时,我得到以下结果:
./project1/build/generated/source/buildConfig/androidTest/debug/com/foo/bar/test/BuildConfig.java
./project1/build/generated/source/buildConfig/debug/com/foo/bar/BuildConfig.java
./project1/build/generated/source/buildConfig/release/com/foo/bar/BuildConfig.java
./project5/build/generated/source/buildConfig/androidTest/debug/com/foo/bar/test/BuildConfig.java
./project5/build/generated/source/buildConfig/debug/com/foo/bar/BuildConfig.java
./project5/build/generated/source/buildConfig/release/com/foo/bar/BuildConfig.java
./project4/build/generated/source/buildConfig/androidTest/debug/com/foo/bar/test/BuildConfig.java
./project4/build/generated/source/buildConfig/debug/com/foo/bar/BuildConfig.java
./project4/build/generated/source/buildConfig/release/com/foo/bar/BuildConfig.java
Run Code Online (Sandbox Code Playgroud)
看来问题是我有几个共享命名空间的模块。有什么办法可以解决这个问题吗?我不想更改其他项目的命名空间。
在 Cargo cult 编程的经典展示中,我尝试添加:
dexOptions {
preDexLibraries = false
}
Run Code Online (Sandbox Code Playgroud)
到我的应用程序 build.gradle 中的 android 块,但这只会让情况变得更糟,并且构建开始抱怨其他依赖项。
有没有办法解决这个重命名包名称的问题?
| 归档时间: |
|
| 查看次数: |
7154 次 |
| 最近记录: |