【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

posted @ 2020-05-15 15:53  城别  阅读(627)  评论(0编辑  收藏  举报