1、程序包 ***.databinding不存在 解决方案:
(1)首先查看 是否 布局文件 有语法错误。如果有错误 先解决 布局文件的一般性语法错误。
(2)根据 databinding 使用的 几处修改 检查是否有问题
1、build.grade中是否添加:
Android 4.1 前
android {
...
dataBinding{
enabled true
}
...
}
Android 4.1 之后
android {
...
buildFeatures {
dataBinding = true
//viewBinding = true
}
...
}
Android Studio 或者 gradle 版本切换 可能导致各种坑爹的问题
2、布局文件中是否 layout 作为根节点
例如 使用databinding 前
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:text="dataBinding基本使用"/>
</LinearLayout>
使用databinding 后
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:text="dataBinding基本使用"/>
</LinearLayout>
</layout>
基本可以解决问题!
参考:
https://blog.csdn.net/qiang_xi/article/details/73849556
https://blog.csdn.net/guyuealian/article/details/51953749
2、Unable to load class 'javax.xml.bind.JAXBException'.
This is an unexpected error. Please file a bug containing the idea.log file.
一开始 我认为:
这个问题 基本就是 gradle 的 JDK 和 本地环境中 JavaHome 中的 JDK 版本不一致导致的。
Android Studio => Project Structure => SDK Location => Gradle Settings =>Gradle JDK 路径 与 JavaHome 的 本地JDK 版本统一就好了。
因为 在我的机器上 我将 jdk 统一成 1.8 确实解决了问题 后面发现 统一成 jdk11 依然有问题
更新:
实际上并不是, 是需要将 JDK 降级 或手动导入依赖包
JAXB API是java EE 的API,因此在java SE 9.0 中不再包含这个 Jar 包。java 9 中引入了模块的概念,默认情况下,Java SE中将不再包含java EE 的Jar包 。而在 java 6/7 / 8 时关于这个API 都是捆绑在一起的。
方案一:
降低JDK 9 版本到 JDK 6/7/8,显然你不想这样做。
方案二:(亲测可行)
手动导入下面四个Jar包: javax.activation-1.2.0.jar jaxb-api-2.3.0.jar jaxb-core-2.3.0.jar jaxb-impl-2.3.0.jar
javax.activation-1.2.0.jar
http://search.maven.org/remotecontent?filepath=com/sun/activation/javax.activation/1.2.0/javax.activation-1.2.0.jar
jaxb-api-2.3.0.jar
http://search.maven.org/remotecontent?filepath=javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar
jaxb-core-2.3.0.jar
http://search.maven.org/remotecontent?filepath=com/sun/xml/bind/jaxb-core/2.3.0/jaxb-core-2.3.0.jar
jaxb-impl-2.3.0.jar
http://search.maven.org/remotecontent?filepath=com/sun/xml/bind/jaxb-impl/2.3.0/jaxb-impl-2.3.0.jar
下载上面这些文件并复制到libs文件夹下, 添加到Build Path中,重新运行即可。
————————————————
版权声明:本文为CSDN博主「pipizhen_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/pipizhen_/article/details/108300039