我正在尝试将项目迁移到 Android Studio / Gradle,但我遇到了一个奇怪的问题,即使用 Ant 可以正常工作的 jar 。似乎 R 和 BuildConfig 包含在 jar 中,并且它们的包名声明为大写,而实际上包结构将其定义为小写。(我已更改包名称以保护开发人员的匿名性,希望没关系)
意外的顶级异常:
com.android.dx.cf.iface.ParseException:类名(com/companyname/UI/BuildConfig)与路径不匹配(com/companyname/ui/BuildConfig.class) 在 com.android.dx.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) 在 com.android.dx.command.dexer.Main.processFileBytes(Main.java:634) 在 com.android.dx.command.dexer.Main.access$600(Main.java:78) 在 com .android.dx.command.dexer.Main$1.processFileBytes(Main.java:572) 在 com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) 在 com.android.dx.cf。直接.ClassPathOpener.processOne(ClassPathOpener.java:166) 在 com.android.dx.command.dexer.Main.processOne(Main.java:596) 在 com.android.dx 的 com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) .command.dexer.Main.processAllFiles(Main.java:498) 在 com.android.dx.command.dexer.Main.runMonoDex(Main.java:264) 在 com.android.dx.command.dexer.Main.run (Main.java:230) 在 com.android.dx.command.dexer.Main.main(Main.java:199) 在 com.android.dx.command.Main.main(Main.java:103) ...在解析 com/companyname/ui/BuildConfig.classrunMonoDex(Main.java:264) 在 com.android.dx.command.dexer.Main.run(Main.java:230) 在 com.android.dx.command.dexer.Main.main(Main.java:199)在 com.android.dx.command.Main.main(Main.java:103) ...同时解析 com/companyname/ui/BuildConfig.classrunMonoDex(Main.java:264) 在 com.android.dx.command.dexer.Main.run(Main.java:230) 在 com.android.dx.command.dexer.Main.main(Main.java:199)在 com.android.dx.command.Main.main(Main.java:103) ...同时解析 com/companyname/ui/BuildConfig.class
以下是我的问题:
- 为什么它适用于 Ant 而不是 Gradle?
- 这应该被视为缺陷/错误还是设计决策?
- 为什么我在互联网上找不到其他罐子有这个问题的人?
- 关于如何纠正问题,我可以向开发人员提供什么建议?