3

I am trying to use okbuck with Android Studio 3.3, but I got stuck on AndroidX. When I convert all dependencies to androidx and set:

android.enableJetifier=true
android.useAndroidX=true

With running I get the following error:

./buckw install --run //app:bin_debug
Exception in thread "main" java.lang.IllegalArgumentException: The given artifact contains a string literal with a package reference 'android.support.design.widget' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx. 
at com.android.tools.build.jetifier.processor.transform.bytecode.CoreRemapperImpl.rewriteString(CoreRemapperImpl.kt:91)
        at com.android.tools.build.jetifier.processor.transform.bytecode.asm.CustomRemapper.mapValue(CustomRemapper.kt:75)
        at org.objectweb.asm.commons.ClassRemapper.visitField(ClassRemapper.java:113)
        at org.objectweb.asm.ClassReader.readField(ClassReader.java:883)
        at org.objectweb.asm.ClassReader.accept(ClassReader.java:694)
        at org.objectweb.asm.ClassReader.accept(ClassReader.java:500)
        at com.android.tools.build.jetifier.processor.transform.bytecode.ByteCodeTransformer.runTransform(ByteCodeTransformer.kt:39)
        at com.android.tools.build.jetifier.processor.Processor.visit(Processor.kt:366)
        at com.android.tools.build.jetifier.processor.archive.ArchiveFile.accept(ArchiveFile.kt:41)
        at com.android.tools.build.jetifier.processor.Processor.visit(Processor.kt:348)
        at com.android.tools.build.jetifier.processor.archive.Archive.accept(Archive.kt:70)
        at com.android.tools.build.jetifier.processor.Processor.transformLibrary(Processor.kt:344)
        at com.android.tools.build.jetifier.processor.Processor.transform(Processor.kt:207)
        at com.android.tools.build.jetifier.processor.Processor.transform$default(Processor.kt:194)
        at com.android.tools.build.jetifier.standalone.Main.run(Main.kt:147)
        at com.android.tools.build.jetifier.standalone.Main$Companion.main(Main.kt:101)
        at com.android.tools.build.jetifier.standalone.Main.main(Main.kt)

I can even comment out all dependencies, delete-reinit okbuck (so no cache) and with jetifier still on, error keeps popping up.

I use okbuck version 0.46.2, jetifier allegedly working since 0.44.1.

Zoe
  • 27,060
  • 21
  • 118
  • 148
Majkeee
  • 960
  • 1
  • 8
  • 28
  • Have you ever found a solution for this issue? I have the exact same thing using `okbuck:0.47.0`. – alexbchr Mar 26 '19 at 16:56
  • I have not. I suppose a solution would be wait for all dependencies to turn to androidx (or jetify them ourselves on private maven) and turn off jetifier. – Majkeee Mar 27 '19 at 17:04
  • i am facing some issue with okBuck. buckw command is not working. Included dependencies NDK and watchman as mentioned in the okBuck github. Created buck wrapper but the buckw commands are not getting recognised in android studio terminal. Any ideas would be really helpful. – Firnaz May 21 '19 at 06:55

1 Answers1

1

I had run into similar issue as you do when I was working on my okbuck sample project. And I have resolved this issue by adding a jetifier block in root level build.gradle. Please refer to the pull request here that has fixed the AndroidX issue.

This is the whole code block related to okbuck.

okbuck {

    buildToolVersion = '28.0.3'

    lint {
       disabled = true
    }
    externalDependencies {
        downloadInBuck = false
    }
    jetifier {
        aarOnly = true
    }
}
Tony Thompson
  • 410
  • 5
  • 13