【Flutter】androidx.versionedparcelable.CustomVersionedParcelable
flutter原生项目,ios运行没有问题,生成Android包时报错:
Error: “Program type already present: androidx.versionedparcelable.CustomVersionedParcelable”
有两种方法,第一种降低pubspec.yaml中barcode_scan的版本,此方法未测试,大家自行查看解决:
https://blog.csdn.net/weixin_33816946/article/details/91416644
第二种,亲自测试可用,让flutter生成的Android包支持AndroidX,以下为具体步骤:
step1:参考https://stackoverflow.com/questions/53570454/error-program-type-already-present-androidx-versionedparcelable-customversion在gradle.properties文件中加入以下两句代码
android.useAndroidX=true android.enableJetifier=true
运行测试后,如果报错信息如下,继续看step2:
Android dependency ‘androidx.core:core’ has different version for the compile (1.0.0) and runtime (1.0.1) classpath. You should manually set the same version via DependencyResolution
step2:参考https://www.codercto.com/a/80137.html中,将
project.evaluationDependsOn(':app')
注释掉,改为
project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'androidx.core' &&!details.requested.name.contains('androidx')) { details.useVersion "1.0.1" } } }
问题解决,如果仍然错误,并且信息如下,继续看step3:
Could not resolve all files for configuration ':lintClassPath'.
step3:参考https://blog.csdn.net/u010264659/article/details/80358407,问题是gradle版本和Android studio版本不一致(真是个傻屌问题。。。),然后将gradle版本更改为3.6.1,同时修改gradle-wrapper.properties中url为最新版
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
至此,所有问题解决,如果提示gradle版本无法下载,建议开启代理或者vpn