Я пытаюсь перенести проект на Android Studio / Gradle, но у меня возникла странная проблема с банкой, которая отлично работала с использованием Ant . Кажется, что R и BuildConfig включены в банку, а их имя пакета объявлено как верхний регистр, где на самом деле структура пакета определена как строчная. (Я изменил имя пакета, чтобы защитить анонимность разработчика, надеюсь, что все в порядке)
НЕОПРЕДЕЛЕННОЕ ИСКЛЮЧЕНИЕ ТОП-УРОВНЯ:
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.direct.ClassPathOpener.processOne (ClassPathOpener.java:166) На com.android.dx.cf.direct.ClassPathOpener.process (ClassPathOpener.java:144) на com.android. Dx.command.dexer.Main.processOne (Main.java:596) на com.android.dx.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.class
Вот мои вопросы:
Я думаю, что если вы перестроить библиотеку и исключить все из каталога / gen, все должно работать нормально.
Это произошло со мной, когда имя пакета в Play (com.checkpoint.DocSec) было отличным от локального каталога (com.checkpoint.docsec), а нечувствительность к файлу локальной файловой системы прикручивала процесс построения.
В соответствии с этим я могу изменить имя пакета в манифесте на com.checkpoint.capsule.docs (это не имеет большого значения, если это не то же самое, с учетом регистра) и установить идентификатор приложения в Build.gradle to com.checkpoint.DocSec (очень важно сохранить его точно так же, как и было !!!).
Это решило проблему для меня.