Android X 是对 android.support.xxx 包的整理后产物。由于之前的 support 包过于混乱,所以,Google 推出了Android X。

由于在后续版本中,会逐步放弃对 support 的升级和维护,所以,我们必须迁移到 Android X .

Android X 之后就会找不到 android.support.annotation 打包会出现以下错误

> Task :react-native-spinkit:compileReleaseJavaWithJavac FAILED
/data/app/dongdianyi/node_modules/react-native-spinkit/android/src/main/java/com/react/rnspinkit/RNSpinkit.java:5: 错误: 程序包android.support.annotation不存在
import android.support.annotation.Nullable;
                                 ^
/data/app/dongdianyi/node_modules/react-native-spinkit/android/src/main/java/com/react/rnspinkit/RNSpinkit.java:57: 错误: 找不到符号
    public void setIsVisible(RNSpinkitView view, @Nullable Boolean visible) {
                                                  ^
  符号:   类 Nullable
  位置: 类 RNSpinkit
/data/app/dongdianyi/node_modules/react-native-spinkit/android/src/main/java/com/react/rnspinkit/RNSpinkit.java:65: 错误: 找不到符号
    public void setColor(RNSpinkitView view, @Nullable int color) {
                                              ^
  符号:   类 Nullable
  位置: 类 RNSpinkit
/data/app/dongdianyi/node_modules/react-native-spinkit/android/src/main/java/com/react/rnspinkit/RNSpinkit.java:70: 错误: 找不到符号
    public void setSize(RNSpinkitView view, @Nullable double size) {
                                             ^
  符号:   类 Nullable
  位置: 类 RNSpinkit
/data/app/dongdianyi/node_modules/react-native-spinkit/android/src/main/java/com/react/rnspinkit/RNSpinkit.java:75: 错误: 找不到符号
    public void setType(RNSpinkitView view, @Nullable String spinnerType) {
                                             ^
  符号:   类 Nullable
  位置: 类 RNSpinkit
5 个错误

FAILURE: Build failed with an exception.

我们找到 react-native-spinkit 的 build.gradle 文件添加以下依赖:

...

dependencies {
    implementation 'androidx.annotation:annotation:1.1.0'
}

...

在代码中将相关引用改为

import androidx.annotation.Nullable;

React Native 项目的话可以看看我的另外一篇博客找到的一个更快的方法用 Jetifier 替换 androidx 包,觉得有用的小伙伴点个喜欢支持一下吧,嘻嘻

使用 jetifier 将依赖于支持库的库迁移为依赖于等效的 AndroidX 软件包