java – 多个dex文件定义/ BuildConfig,找不到原因:

前端之家收集整理的这篇文章主要介绍了java – 多个dex文件定义/ BuildConfig,找不到原因:前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用新的毕业生构建系统,我正面临以下问题:
  1. UNEXPECTED TOP-LEVEL EXCEPTION:
  2. com.android.dex.DexException: Multiple dex files define Lcom/kibo/mobi/BuildConfig;
  3. at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
  4. at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
  5. at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)
  6. at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
  7. at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
  8. at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
  9. at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
  10. at com.android.dx.command.dexer.Main.run(Main.java:230)
  11. at com.android.dx.command.dexer.Main.main(Main.java:199)
  12. at com.android.dx.command.Main.main(Main.java:103)

依赖关系我看不到任何东西,这里是:

  1. firstDebugCompile - ## Internal use,do not manually configure ##
  2. \--- KiboGradle:KiboSDK:unspecified
  3. +--- KiboGradle:TextInputAPI:unspecified
  4. +--- KiboGradle:VoiceImeUtils:unspecified
  5. +--- com.google.android.gms:play-services:5.0.77
  6. | \--- com.android.support:support-v4:19.1.0
  7. +--- com.squareup.picasso:picasso:2.3.2
  8. +--- com.google.code.gson:gson:2.2.4
  9. \--- com.crittercism:crittercism-android-agent:4.5.1

我试图验证问题不是一个重复的支持库,所以我试图添加

  1. compile ('com.google.android.gms:play-services:5.0.77'){
  2. exclude module: 'support-v4'
  3. }

哪些导致一些支持-V4库类找不到的错误,所以这个库不能从任何其他位置编译.

我想到的一件事可能是导致这个问题的事实是,我使用Flavors feautre in oreder来创建我的应用程序的不同版本的文件.

当我看到错误中的文件,我看到:

  1. **
  2. * Automatically generated file. DO NOT MODIFY
  3. */
  4. package com.kibo.mobi;
  5.  
  6. public final class BuildConfig {
  7. public static final boolean DEBUG = Boolean.parseBoolean("true");
  8. public static final String PACKAGE_NAME = "com.kibo.mobi.test.official";
  9. public static final String BUILD_TYPE = "debug";
  10. public static final String FLAVOR = "liverpool";
  11. public static final int VERSION_CODE = 1;
  12. public static final String VERSION_NAME = "1.0";
  13. }

所以包中的文件和包中指定的String值是不一样的.

任何人都可以看到我的配置中可能导致此问题的任何问题?

解决方法

在我的情况下,发生类似的错误是因为在AndroidManifest.xml文件中有两个具有相同包名称的模块.在模块中使用不同的包名解决了问题.

同样的事情发生在一个库jar被包含两次(或更多次)在几个模块,作为依赖.在这种情况下,错误信息说明了该库的包名称后面的重复配置.我解决了它,将库作为​​一个模块中的依赖关系,第二个模块依赖于第一个模块.

猜你在找的Java相关文章