Search code examples
androidandroid-library

Error building Android Library in Android Studio


I am getting this error when building the library: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

This is what I get when I get java versions on my Mac:

java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

The project is open source here: https://github.com/NickM-27/LinkPreview

I have tried cleaning as well as clearing and re-downloading from git to no avail

Please let me know what other information you need.


Solution

  • Do you have multiple Java versions installed on your machine? kapt has a bug which does not pickup the correct Java version defined as default in compileOptions {} block in Gradle.

    Kapt is most likely using recent version of Java which split Jaxb class into separate module since Java version 9.

    How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException in Java 9

    Until the Kapt bug (I don't have a link) is fixed, uninstall unneeded Java versions or force kapt to pickup the correct version by adding this:

    kapt {      
        javacOptions {
             option("-source", "8")
             option("-target", "8")
        }
    

    Reference: https://github.com/google/dagger/issues/1449