项目场景:
最近在做深度学习模型的手机部署,因为初次使用Andriod模型,所以遇到了不少bug。
问题描述
具体报错如下:
看起来有很多错误,其实都是第一个感叹号引起的。
点开感叹号,能看到:
其实这里已经告诉了我们报错原因和解决方法:
Your project has set android.useAndroidX=true
, but configuration :app:debugRuntimeClasspath
still contains legacy support libraries, which may cause runtime issues.
This behavior will not be allowed in Android Gradle plugin 8.0.
Please use only AndroidX dependencies or set android.enableJetifier=true
in the gradle.properties
file to migrate your project to AndroidX (see https://developer.android.com/jetpack/androidx/migrate for more info).
原因分析:
这个警告意味着您的项目中存在旧版的Support库,但您的项目已经设置为使用AndroidX。这可能会导致运行时问题,并且在未来的Gradle插件版本中,这种行为将不再被允许。
要解决这个问题,您可以尝试以下两种方法之一:
1.迁移到使用AndroidX库。这意味着您需要将所有旧版Support库替换为对应的AndroidX库。可以使用Android Studio的Refactor功能来自动完成此操作。您可以在gradle.properties文件中设置android.useAndroidX=true来启用此功能。
2.启用Jetifier。Jetifier是一个工具,可以将旧版Support库转换为AndroidX库,以便您可以继续使用旧版库而不会出现运行时问题。您可以在gradle.properties文件中设置android.enableJetifier=true来启用此功能。
请注意,如果您选择启用Jetifier,请确保您的项目中没有使用任何自定义的Support库或第三方库,否则可能会出现不兼容性问题。
解决方案:
我们打开gradle.properties,如下图所示:
在最后添加一句:android.enableJetifier=true
再次同步,同步后再运行,发现不报错了: