参考:https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility
在 android/gradle/wrapper/gradle-wrapper.properties中修改Gradle版本为4.10.2
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
在android/build.gradle,修改:
classpath 'com.android.tools.build:gradle:3.3.0'
在android/gradle.properties中添加:
android.enableJetifier=true
android.useAndroidX=true
在android/app/build.gradle中的android下面确保compileSdkVersion 和 targetSdkVersion 最少是 28.
将所有support都替换成androidx,
比如将
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
替换成
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
再比如将
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
替换成
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
如下图:
如果不想配置AndroidX,在使用依赖库的时候,就要选择该依赖库没有迁移到AndroidX的最后版本,主要的依赖库如下:
android_alarm_manager: 0.2.3
android_intent: 0.2.1
battery: 0.3.0
camera: 0.2.9+1
cloud_firestore: 0.8.2+3
cloud_functions: 0.0.5
connectivity: 0.3.2
device_info: 0.3.0
firebase_admob: 0.7.0
firebase_analytics: 1.1.0
firebase_auth: 0.7.0
firebase_core: 0.2.5+1
firebase_database: 1.0.5
firebase_dynamic_links: 0.1.1
firebase_messaging: 2.1.0
firebase_ml_vision: 0.2.1
firebase_performance: 0.0.8+1
firebase_remote_config: 0.0.6+1
firebase_storage: 1.0.4
google_maps_flutter: 0.1.0
google_sign_in: 3.2.4
image_picker: 0.4.12+1
local_auth: 0.3.1
package_info: 0.3.2+1
path_provider: 0.4.1
quick_actions: 0.2.2
sensors: 0.3.5
share: 0.5.3
shared_preferences: 0.4.3
url_launcher: 4.1.0+1
video_player: 0.9.0
webview_flutter: 0.2.0
举个栗子:
打开shared_preferences的pub链接:
https://pub.dev/packages/shared_preferences#-changelog-tab-
在 Changelog中可以看到 0.5.0使用了AndroidX,那么为了回避AndroidX我们能使用的的最后一个版本也就是0.4.3了