Java. Lang. Noclassdeffounderror: Javax/Xml/Bind/Jaxbexception After Updating to Android Studio 4.2

Google just release Android Studio 4.2 stable. I updated my AS from 4.1 to 4.2. Now I am getting this error. It's showing error in data binding.

Caused by: java.util.ServiceConfigurationError: javax.annotation.processing.Processor: android.databinding.annotationprocessor.ProcessDataBinding Unable to get public no-arg constructor
        at kotlin.collections.CollectionsKt___CollectionsKt.toCollection(_Collections.kt:1200)
        at kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(_Collections.kt:1233)
        at kotlin.collections.CollectionsKt___CollectionsKt.toList(_Collections.kt:1224)
        at org.jetbrains.kotlin.kapt3.base.ProcessorLoader.doLoadProcessors(ProcessorLoader.kt:80)
        at org.jetbrains.kotlin.kapt3.base.ProcessorLoader.loadProcessors(ProcessorLoader.kt:45)
        at org.jetbrains.kotlin.kapt3.base.Kapt.kapt(Kapt.kt:42)
        ... 28 more
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
        ... 34 more
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
        ... 34 more

7 Answers

Android Studio 4.2.0 and more now comes with Java 11.0.8 shipped and will use it by default which cases this error in deprecated libraries.

The solution is simple, you need to change it to java (JDK) 1.8 in the menu File > Project Structure > JDK Location

Notices that Android Studio lower than 4.2.0 comes with java 1.8 already

3

By doing the following steps I solved this problem without replacing JDK with JAVA 8.

Step 1 : Update the distributionUrl to https\:// in your gradle-wrapper.properties

Step 2: Update your gradle tool classpath to 'com.android.tools.build:gradle:4.2.1' in your root buid.gradle

I had same issue, and I alrady solved. I found that Android studio 4.2 will make the JDK update to Java11, it will cause error what you described.

You can delete the Java11 JDK and replace by Java8 (/Applications/Android ).

Also you can uninstall the Android Studio, and reinstall it.

1

If you are using Ubuntu then just change the JDK location to JAVA (JDK) 1.8 in the menu File > Project Structure > JDK Location

JDK location android studio 4.2

1

I thought it was the jdk route, after hours searching, this worked for me

distributionUrl=https\://

in your build.gradle file add and update kotlin_version

ext.kotlin_version = '1.4.32'

 dependencies {
        classpath 'com.android.tools.build:gradle:4.2.1'
    }

if you use enableAapt2 remove it from your gradle.properties file

org.gradle.jvmargs=-Xmx1536M -Dkotlin.daemon.jvm.options\="-Xmx1536M"
#android.enableAapt2=false
android.useAndroidX=true
android.enableJetifier=true

If you are coming here having Android Studio Arctic Fox which comes by default with Java 11, you need to use java 1.8 to find necessary classes which are completely removed in java 11 upgrade.

Path to set in Android Studio Arctic Fox is as follows

Preferences > Build execution Deployment > Gradle > Gradle Sdk

Choose Download JDK then Java 1.8.x version and rebuild the project.

there are two method to solve this problem

  1. roll back to Java 8
  2. update gradle tools 'com.android.tools.build:gradle' like 4.2.1(I used) maybe you will encounter "Entry name 'AndroidManifest.xml' collided" problem, add below to you App build.gradle
android {
    packagingOptions {
        exclude 'AndroidManifest.xml'
    }
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Sophia Al-Mansoor

Sophia Al-Mansoor

Global Business & E-Commerce Reporter

Sophia analyzes international trade, startup ecosystems, retail transformation, and supply chain logistics for modern digital publications.

Share this article
Twitter Facebook Pinterest