OkBuck не работает с Android Jetifier с нулевыми зависимостями
Я пытаюсь использовать okbuck
с Android Studio 3.3, но я застрял на AndroidX. Когда я конвертирую все зависимости в androidx и устанавливаю:
android.enableJetifier=true
android.useAndroidX=true
При запуске я получаю следующую ошибку:
./buckw install --run //app:bin_debug
Исключение в потоке "main" java.lang.IllegalArgumentException: данный артефакт содержит строковый литерал со ссылкой на пакет 'android.support.design.widget', который нельзя переписать безопасно. Библиотеки, использующие рефлексию, такие как процессоры аннотаций, необходимо обновить вручную, чтобы добавить поддержку androidx. в com.android.tools.build.jetifier.processor.transform.bytecode.CoreRemapperImpl.rewriteString(CoreRemapperImpl.kt:91) в com.android.tools.build.jetifier.processor.transform.bytecode.asm.CustomRemapper.mapValue(CustomRemapper.kt:75) в org.objectweb.asm.commons.ClassRemapper.visitField(ClassRemapper.java:113) в org.objectweb.asm.ClassReader.readField(ClassReader.java:883) в org.objectweb.asm.ClassReader.accept(ClassReader.java:694) в org.objectweb.asm.ClassReader.accept(ClassReader.java:500) в com.android.tools.build.jetifier.processor.transform.bytecode.ByteCodeTransformer.runTransform(ByteCodeTransformer.by:39) на com.android.tools.build.jetifier.processor.Processor.visit(Processor.kt:366) на com.android.tools.build.jetifier.processor.archive.ArchiveFile.accept(ArchiveFile.kt:41) в com.android.tools.build.jetifier.processor.Processor.visit(Processor.kt:348) в com.android.tools.build.jetifier.processor.archive.Archive.accept(Archive.kt:70) в com.android.tools.build.jetifier.processor.Processor.transformLibrary(Processor.kt:344) в com.android.tools.build.jetifier.processor.Processor.transform(Processor.kt:207) в com.android.tools.build.jetifier.processor.Processor. преобразование $default(Processor.kt:194) в com.android.tools.build.jetifier.standalone.Main.run(Main.kt:147) в com.android.tools.build.jetifier.standalone.Main$Companion.main(Main.kt:101) на com.android.tools.build.jetifier.standalone.Main.main(Main.kt)
Я могу даже закомментировать все зависимости, удалить-переустановить okbuck (так что нет кеша), и, если еще включен jetifier, ошибка продолжает появляться.
я использую okbuck
версия 0.46.2, предположительно работает с выпрямителем 0.44.1.
0 ответов
Я столкнулся с такой же проблемой, как и вы, когда я работал над своим примером проекта okbuck. И я решил эту проблему, добавив блок jetifier в корневой уровень build.gradle. Пожалуйста, обратитесь к запросу на получение здесь, который исправил проблему AndroidX.
Это весь блок кода, связанный с okbuck.
okbuck {
buildToolVersion = '28.0.3'
lint {
disabled = true
}
externalDependencies {
downloadInBuck = false
}
jetifier {
aarOnly = true
}
}