Flutter:如果 Cloud_firestore 或其依赖项与 AndroidX 不兼容,Cloud_firestore 将破坏您的 Android 构建
Flutter: Cloud_firestore will break your Android build if it or its dependencies aren't compatible with AndroidX
我不能同时使用这两个 flutter 插件:
cloud_firestore: ^0.9.0+2
barcode_scan: ^0.0.8
当运行时,发生错误:
D8: Program type already present: android.arch.core.util.Function
*********************************************************
WARNING: This version of cloud_firestore will break your Android build if it or its dependencies aren't compatible with AndroidX.
See https: //goo.gl /CP92wY for more information on the problem and how to fix it.
This warning prints for all Android build failures. The real root cause of the error may be unrelated.
*********************************************************
FAILURE: Build failed with an exception.
当我删除其中一个时,它在 Android phone 上编译并 运行ned。但两者不能并存。如何修复?
报告 barcode_scan
的问题以针对 AndroidX 进行更新。
在新的 barcode_scan
版本可用之前,将插件限制为不依赖于 AndroidX 的版本:
cloud_firestore: ^0.8.2
或手动更新 barcode_scan
https://github.com/flutter/flutter/issues/28207#issuecomment-465600796
找到 解决方案(至少对我而言)!
我遇到了以下问题:
[+1498 ms] > Task :app:crashlyticsUploadDeobsRelease
[ ] > Task :cloud_firestore:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :firebase_analytics:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :firebase_auth:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :firebase_core:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :firebase_crashlytics:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :firebase_dynamic_links:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :firebase_messaging:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :firebase_ml_vision:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :firebase_remote_config:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :flutter_local_notifications:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :google_sign_in:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :image_picker:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :share:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :shared_preferences:prepareLintJarForPublish UP-TO-DATE
[+15399 ms] > Task :app:lintVitalRelease FAILED
[ ] *********************************************************
[ ] WARNING: This version of cloud_firestore will break your Android build if it or its dependencies aren't compatible with AndroidX.
[ ]
[ ] This warning prints for all Android build failures. The real root cause of the error may be unrelated.
[ ] *********************************************************
[ ] 317 actionable tasks: 273 executed, 44 up-to-date
[ +372 ms] Running Gradle task 'assembleRelease'... (completed in 75.7s)
[ ] *******************************************************************************************
[ ] The Gradle failure may have been because of AndroidX incompatibilities in this Flutter app.
[ ]
似乎 runner 版本 1.2.1 对此负责!
在我更改为 1.2.0 版本后,它起作用了。
所以,我从 android/app/build.gradle
更改了以下行
androidTestImplementation 'androidx.test:runner:1.2.1'
到
androidTestImplementation 'androidx.test:runner: 1.2.0'
(注意:另外,不要忘记在 Firebase 控制台中添加您要在应用中使用的所有 SHA 证书指纹。)
简而言之
将 multidex 库添加到 android 应用依赖项(/android/app/build.gradle)
...
android {
...
defaultConfig {
...
multiDexEnabled true
}
...
}
...
dependencies {
implementation 'com.android.support:multidex:1.0.3' // use latest version
...
}
...
在android目录下
gradel.properties 文件
添加
android.useAndroidX=true
android.enableJetifier=true
我不能同时使用这两个 flutter 插件:
cloud_firestore: ^0.9.0+2
barcode_scan: ^0.0.8
当运行时,发生错误:
D8: Program type already present: android.arch.core.util.Function
*********************************************************
WARNING: This version of cloud_firestore will break your Android build if it or its dependencies aren't compatible with AndroidX.
See https: //goo.gl /CP92wY for more information on the problem and how to fix it.
This warning prints for all Android build failures. The real root cause of the error may be unrelated.
*********************************************************
FAILURE: Build failed with an exception.
当我删除其中一个时,它在 Android phone 上编译并 运行ned。但两者不能并存。如何修复?
报告 barcode_scan
的问题以针对 AndroidX 进行更新。
在新的 barcode_scan
版本可用之前,将插件限制为不依赖于 AndroidX 的版本:
cloud_firestore: ^0.8.2
或手动更新 barcode_scan
https://github.com/flutter/flutter/issues/28207#issuecomment-465600796
找到 解决方案(至少对我而言)!
我遇到了以下问题:
[+1498 ms] > Task :app:crashlyticsUploadDeobsRelease
[ ] > Task :cloud_firestore:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :firebase_analytics:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :firebase_auth:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :firebase_core:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :firebase_crashlytics:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :firebase_dynamic_links:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :firebase_messaging:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :firebase_ml_vision:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :firebase_remote_config:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :flutter_local_notifications:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :google_sign_in:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :image_picker:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :share:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :shared_preferences:prepareLintJarForPublish UP-TO-DATE
[+15399 ms] > Task :app:lintVitalRelease FAILED
[ ] *********************************************************
[ ] WARNING: This version of cloud_firestore will break your Android build if it or its dependencies aren't compatible with AndroidX.
[ ]
[ ] This warning prints for all Android build failures. The real root cause of the error may be unrelated.
[ ] *********************************************************
[ ] 317 actionable tasks: 273 executed, 44 up-to-date
[ +372 ms] Running Gradle task 'assembleRelease'... (completed in 75.7s)
[ ] *******************************************************************************************
[ ] The Gradle failure may have been because of AndroidX incompatibilities in this Flutter app.
[ ]
似乎 runner 版本 1.2.1 对此负责!
在我更改为 1.2.0 版本后,它起作用了。
所以,我从 android/app/build.gradle
androidTestImplementation 'androidx.test:runner:1.2.1'
到
androidTestImplementation 'androidx.test:runner: 1.2.0'
(注意:另外,不要忘记在 Firebase 控制台中添加您要在应用中使用的所有 SHA 证书指纹。)
简而言之
将 multidex 库添加到 android 应用依赖项(/android/app/build.gradle)
...
android {
...
defaultConfig {
...
multiDexEnabled true
}
...
}
...
dependencies {
implementation 'com.android.support:multidex:1.0.3' // use latest version
...
}
...
在android目录下 gradel.properties 文件
添加
android.useAndroidX=true
android.enableJetifier=true