DEX无法使用Gradle解析包含BuildConfig和R的jar,但是使用了Ant

Jac*_*bak 9 android jar gradle dex

我正在尝试将项目迁移到Android Studio/Gradle,但我遇到了一个使用Ant工作得很好的 jar的奇怪问题.似乎R和BuildConfig包含在jar中,并且它们的包名称被声明为大写,其中实际上包结构将其定义为小写.(我已经更改了包名称以保护开发人员的匿名性,希望没问题)

意外的顶级异常:
com.android.dx.cf.iface.ParseException:类名(com/companyname/UI/BuildConfig)与 com.android.dx 中的路径(com/companyname/ui/BuildConfig.class)不匹配 .cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)位于com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)的com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary (DirectClassFile.java:388)位于com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)的com.android.dx.command.dexer.Main.processClass(Main.java:665)at at com.android.dx.com上的com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)com.android.dx.command.dexer.Main.access $ 600(Main.java:78) .dexer.Main $ 1.processFileBytes(Main.java:572)com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)at com.android.dx.cf.direct.ClassPathOpener.processOne( ClassPathOpener.java:166)com.android.dx.cf.direct.ClassPathOpener.process(ClassPath Opener.java:144)com.android.dx.command.dexer.Main.processOne(Main.java:596)at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)at com com.android.dx.command.dexer上com.android.dx.command.dexer.Main.run(Main.java:230)的.android.dx.command.dexer.Main.runMonoDex(Main.java:264) .Main.main(Main.java:199)在com.android.dx.command.Main.main(Main.java:103)...解析com/companyname/ui/BuildConfig.class

这是我的问题:

  • 为什么它适用于Ant而不是Gradle?
  • 这应该被视为缺陷/错误还是设计决策?
  • 为什么我在互联网上找不到其他人与其他罐子有这个问题?
  • 我可以向开发人员提供哪些建议来解决问题?

小智 5

我想如果你重建库并从/ gen目录中排除所有内容,一切都应该可以正常工作.