Я перечислю этапы, через которые я прошел, а затем текущая ошибка, так как я понятия не имею, может ли проблема быть вызвана моей настройкой или каким-то более ранним этапом. Я получаю ошибки при попытке скомпилировать пример приложения.
Я следую этому руководству: https://hereket.com/posts/android_from_command_line/
(я установил сборку/платформу инструменты и образ для версии 28.0.3 и JDK 22).
У меня были следующие различия:
1 — aapt не запустился бы, если бы папка gen не была t явно создан заранее
2- d8 отказался от параметра *.class, поэтому я сгенерировал список файлов вручную (у какого-то другого пользователя была такая проблема: d8: странное исключение при использовании его из командной строки)
Я решил проблему, упомянутую здесь: ошибка при запуске инструмента dx или d8 для Android таким же образом.
d8 в настоящее время выдает следующую ошибку:< /p>
Код: Выделить всё
java.lang.IllegalArgumentException
at com.android.tools.r8.org.objectweb.asm.ClassReader.(ClassReader.java:160)
at com.android.tools.r8.org.objectweb.asm.ClassReader.(ClassReader.java:143)
at com.android.tools.r8.org.objectweb.asm.ClassReader.(ClassReader.java:418)
at com.android.tools.r8.graph.JarClassFileReader.read(JarClassFileReader.java:66)
at com.android.tools.r8.dex.ApplicationReader$ClassReader.lambda$readClassSources$1(ApplicationReader.java:231)
at java.base/java.util.concurrent.ForkJoinTask$AdaptedInterruptibleCallable.compute(ForkJoinTask.java:1689)
at java.base/java.util.concurrent.ForkJoinTask$InterruptibleTask.exec(ForkJoinTask.java:1641)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1491)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:2073)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2035)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)
Код: Выделить всё
d8 --debug --output __build\apk\my_classes.jar --no-desugaring __build\obj\
com\user\android_build_test\MainActivity.class \obj\com\user\android_
build_test\R$attr.class __build\obj\com\user\android_build_test\R$id.class __build\obj\com\user\android_build_test\R$layout.class __build\obj\com\user\
android_build_test\R$style.class __build\obj\com\user\android_build_test\R.cl
ass
Если вместо этого я удалю все файлы, кроме одного, у которого удален путь, я получу:
Код: Выделить всё
Error in R.class:
Error with input file: R.class
Compilation failed
(etc. - same call stack)
Подробнее здесь: https://stackoverflow.com/questions/783 ... -d8-errors
Мобильная версия