在使用flutter的时候,用到了image_picker插件,然后今天出了这个问题,出国去找到了答案。分享一下
踩坑的问题
1,flutter 使用image_picker插件,在安卓gradletool升级到4.0.0,gradle6.1.1的时候,选择照片的时候,debug出来的apk没问题,release出来的apk,第一次可以打开选择照片的界面,点击照片后,没有出现预览界面,再次点击Ablumn,就报错 PlatformException(already_active, Image picker has been active, null, null)
google搜索后
查看: https://github.com/flutter/flutter/issues/72759
发现大部分人是说在MainActivity的onActivityResult方法中忘记加上super.onActivityResult方法了,但是我的并不是,而且继承了FlutterActivity类,还有人说是权限问题啥的,在我这都是不存在的。
最后修改了这两个地方,然后build出来的release版本也可以用了
1,android/build.gradle : classpath 'com.android.tools.build:gradle:3.5.4'
2,android/gradle/wrapper/gradle-wrapper.properties : distributionUrl=https://services.gradle.org/distributions/gradle-5.6.2-all.zip
2,上个修改在我的项目中还出现了这个问题,又改了一下,
* What went wrong:
Execution failed for task ':app:compileReleaseKotlin'.
> Could not resolve all artifacts for configuration ':app:releaseCompileClasspath'.
> Failed to transform bcprov-jdk15on-1.65.jar (org.bouncycastle:bcprov-jdk15on:1.65) to match attributes {artifactType=android-classes, org.gradle.category=library, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-api}.
> Execution failed for JetifyTransform: /home/****/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcprov-jdk15on/1.65/320b989112f00a63a3bcfa5a98f31a4f865a20fa/bcprov-jdk15on-1.65.jar.
> Failed to transform '/home/****/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcprov-jdk15on/1.65/320b989112f00a63a3bcfa5a98f31a4f865a20fa/bcprov-jdk15on-1.65.jar' using Jetifier. Reason: null. (Run with --stacktrace for more details.)
原因,AndroidX导致的,升级gradle版本到4.0以上就可以了,但是4.0以上又会导致上面的问题,所以找到了另一种解决办法:
1,增加这个,把出错的jar放到后面,逗号隔开,
android/gradle.properties : 最后一行增加
android.useAndroidX=true
android.enableJetifier=true
android.jetifier.blacklist=bcprov-jdk15on-1.65.jar
然后编译就好了
避免缓存。flutter clean也用用