Two-way Databinding error on AndroidX

안드로이드 스튜디오 3.2 환경에서 Kotlin + DataBinding를 사용하는 프로젝트에서 양방향 데이터바인딩을 사용할 때 DataBinding Error가 나타난다.

다음은 해당 문제가 나올 때의 로그이다.

[kapt] An exception occurred: android.databinding.tool.util.LoggedErrorException: Found data binding errors.
****/ data binding error ****msg:Unknown class: java.lang.String
file:C:\Users\windsekiurn\StudioProjects\---\app\src\main\res\layout\history_popup_activity.xml
loc:150:12 - 172:71
****\ data binding error ****

	at android.databinding.tool.processing.Scope.assertNoError(Scope.java:112)
	at android.databinding.annotationprocessor.ProcessDataBinding.doProcess(ProcessDataBinding.java:109)
	at android.databinding.annotationprocessor.ProcessDataBinding.process(ProcessDataBinding.java:73)
	at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.process(annotationProcessing.kt:99)
	at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
	at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$200(JavacProcessingEnvironment.java:91)
	at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.runContributingProcs(JavacProcessingEnvironment.java:627)
	at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1033)
	at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1198)
	at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
	at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1068)

이 이슈는 어제의 이슈 와 비슷하게 Databinding를 사용하는 라이브러리와 충돌이 일어나서 발생한 이슈같은데, 살짝 원인이 다른 것 같다.

이 이슈의 원인은 양방향 데이터바인딩에서 뷰 -> 뷰모델쪽, 즉 InverseBindingAdapter 가 androidx 패키지로 생성되지 않아 발생하는 문제였던 것 같다.

해결 방법

안드로이드 스튜디오 버전을 3.3 Beta1로 올리고 gradle 플러그인 버전을 3.3.0-beta01, gradle-wrapper 버전을 4.10.1 로 올리면 해결된다.

참조 링크: https://issuetracker.google.com/issues/116361870