本来是打算在Manjaro上复现一次踩到的坑的,结果在折腾Manjaro的时候把Kernel弄炸了,等过段时间再补上

这篇文章作为给自己的提醒,至少之后再出现这种问题的时候不要各种开搜索引擎的寻找解决方法

首先是DataBinding的启用,这个应该是最简单的

找到对应的build.gradle加入下面这行,重新Sync一下就行了

    dataBinding{
        enabled=true
    }

然后是将activity_main.xml转为databind格式,这里使用一个IDEA插件就可以解决了

然后是ViewModel的创建问题,因为新API弃用了旧的ViewModelProviders这个方法,想创建ViewModel的话就得用ViewModelProvider这个方法(虽然只差了一个字母,但是这里折腾死我了)

官方文档和网上资料都告诉我,这个红叉的this应该放一个Fragment/直接填this也行。但是现在这样明显是报错的(然而这是什么东西? 我才刚开始学习安卓 什么都不知道哇 哇的一声哭出来) 尝试了各种getActivity()的方法无果之后,找到了一个解决方法,导入Jetpack的lifecycle包? 然后直接填this就行了

还是在之前的build.gradle下添加

    implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
    implementation "androidx.lifecycle:lifecycle-viewmodel:2.2.0"

Sync完之后就行了,得等以后学习到了再说吧

之后还会遇到一个特别沙雕的问题,估计是这里面什么包用到了JAXBException 而这个东西已经被JAVA11弃用了 = =找了一圈如何导入这个包之后,我终于放弃了,老老实实装了一个JDK8

之后编译就没有这些奇葩问题了= = 很顺利的直接装到了手机/虚拟机上 果然还是我太菜了


今天你摸鱼了吗?