Closed hancens1024 closed 3 years ago
降低版本到1.10.3以下
楼上正解 降低flutter sdk版本 重新打包
请问有其他的解决办法吗?我也遇到相同类似的问题了。但是我有些插件必须要版本到1.10.3以上才能运行。无法降级啊。
请问有其他的解决办法吗?我也遇到相同类似的问题了。但是我有些插件必须要版本到1.10.3以上才能运行。无法降级啊。
似乎只能等作者更新了,我只能降级解决
异常是出现在百川sdk内 且混淆过 定位比较困难, 可能是打包机制有变更导致的, 我尝试过排查, 但能力有限, 没有结果..
好吧好吧,作者辛苦,阿里SDK问题是真的多😂
这就感觉很难过了。。。😂
正解,其它插件都没有问题,只有阿里的出现这个问题,被迫回退到1.9稳定版,尝试在1.12稳定版中 解决失败
Hello,我也遇到这个问题,请问有解决方案了吗?除了降低flutter版本外
同遇到此问题,debug 包正常,release 包提示:
2020-06-09 19:39:05.166 16293-16362/? E/AliBC_Trade[4.0.0.8]: d -> [c.b.b.b.b.d.b.d.a:70] AlibcSecurity init
ErrorCode = 199
c.b.e.a.b.b
at c.b.e.a.a.h.a(Unknown Source:1071)
at c.b.e.a.a.h.d(Unknown Source:50)
at c.b.e.a.a.h.a(Unknown Source:3)
at c.b.e.a.b.i.d.a(Unknown Source:29)
at c.b.e.a.b.i.c.b(Unknown Source:5)
at c.b.e.a.b.i.c.a(Unknown Source:0)
at c.b.b.b.b.d.b.d.a(Unknown Source:15)
at c.b.b.b.b.d.b.a.b(Unknown Source:54)
at c.b.b.b.b.b.a(Unknown Source:31)
at c.b.b.b.a.c.a(Unknown Source:15)
at c.b.b.a.a.c.c(Unknown Source:3)
at c.b.b.a.a.c.a(Unknown Source:0)
at c.b.b.a.a.c$a.run(Unknown Source:4)
at android.os.Handler.handleCallback(Handler.java:888)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:213)
at android.os.HandlerThread.run(HandlerThread.java:67)
I/flutter: 初始化百川结果: 1 安全初始化失败
Flutter (Channel stable, v1.17.3, on Mac OS X 10.15.4 19E287, locale zh-Hans-CN)
已经解决,解决步骤:
一、需要在 android/app/ 目录下新建 proguard-android.txt 文件配置混淆原则,文件内容如下:
-keepattributes Signature
-ignorewarnings
-keep class javax.ws.rs.** { *; }
-keep class com.alibaba.fastjson.** { *; }
-dontwarn com.alibaba.fastjson.**
-keep class sun.misc.Unsafe { *; }
-dontwarn sun.misc.**
-keep class com.taobao.** {*;}
-keep class com.alibaba.** {*;}
-keep class com.alipay.** {*;}
-dontwarn com.taobao.**
-dontwarn com.alibaba.**
-dontwarn com.alipay.**
-keep class com.ut.** {*;}
-dontwarn com.ut.**
-keep class com.ta.** {*;}
-dontwarn com.ta.**
-keep class org.json.** {*;}
-keep class com.ali.auth.** {*;}
-dontwarn com.ali.auth.**
-keep class com.taobao.securityjni.** {*;}
-keep class com.taobao.wireless.security.** {*;}
-keep class com.taobao.dp.**{*;}
-keep class com.alibaba.wireless.security.**{*;}
-keep interface mtopsdk.mtop.global.init.IMtopInitTask {*;}
-keep class * implements mtopsdk.mtop.global.init.IMtopInitTask {*;}
参考百川文档混淆原则部分:https://baichuan.taobao.com/docs/doc.htm?spm=a3c0d.7629140.0.0.45acbe488rAGhC&treeId=129&articleId=118400&docType=1
二、需要在 android/app/build.gradle 配置混淆原则:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
觉得有用请点个赞,谢谢!
已经解决,解决步骤:
一、需要在 android/app/ 目录下新建 proguard-android.txt 文件配置混淆原则,文件内容如下:
-keepattributes Signature -ignorewarnings -keep class javax.ws.rs.** { *; } -keep class com.alibaba.fastjson.** { *; } -dontwarn com.alibaba.fastjson.** -keep class sun.misc.Unsafe { *; } -dontwarn sun.misc.** -keep class com.taobao.** {*;} -keep class com.alibaba.** {*;} -keep class com.alipay.** {*;} -dontwarn com.taobao.** -dontwarn com.alibaba.** -dontwarn com.alipay.** -keep class com.ut.** {*;} -dontwarn com.ut.** -keep class com.ta.** {*;} -dontwarn com.ta.** -keep class org.json.** {*;} -keep class com.ali.auth.** {*;} -dontwarn com.ali.auth.** -keep class com.taobao.securityjni.** {*;} -keep class com.taobao.wireless.security.** {*;} -keep class com.taobao.dp.**{*;} -keep class com.alibaba.wireless.security.**{*;} -keep interface mtopsdk.mtop.global.init.IMtopInitTask {*;} -keep class * implements mtopsdk.mtop.global.init.IMtopInitTask {*;}
参考百川文档混淆原则部分:https://baichuan.taobao.com/docs/doc.htm?spm=a3c0d.7629140.0.0.45acbe488rAGhC&treeId=129&articleId=118400&docType=1
二、需要在 android/app/build.gradle 配置混淆原则:
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
觉得有用请点个赞,谢谢!
没用,你这个 加入混淆之后 首先是编译不了的
minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
改成这样可以编译通过,但依然初始化报错 199
你看下是不是少说了 proguard-rules.pro 文件的配置内容?
proguard-android.txt
混淆规则 proguard-android.txt 文件的内容我贴在上面了,我已经编译通过了,编译不过你贴一下错误。
allprojects {
repositories {
maven {
url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/"
}
google()
jcenter()
}
在 android/app/
下 添加 proguard-rules.pro
文件,内容参考官方文档混淆原则部分:
https://baichuan.taobao.com/docs/doc.htm?spm=a3c0d.7629140.0.0.45acbe488rAGhC&treeId=129&articleId=118400&docType=1
-keepattributes Signature
-ignorewarnings
-keep class javax.ws.rs.** { *; }
-keep class com.alibaba.fastjson.** { *; }
-dontwarn com.alibaba.fastjson.**
-keep class sun.misc.Unsafe { *; }
-dontwarn sun.misc.**
-keep class com.taobao.** {*;}
-keep class com.alibaba.** {*;}
-keep class com.alipay.** {*;}
-dontwarn com.taobao.**
-dontwarn com.alibaba.**
-dontwarn com.alipay.**
-keep class com.ut.** {*;}
-dontwarn com.ut.**
-keep class com.ta.** {*;}
-dontwarn com.ta.**
-keep class org.json.** {*;}
-keep class com.ali.auth.** {*;}
-dontwarn com.ali.auth.**
-keep class com.taobao.securityjni.** {*;}
-keep class com.taobao.wireless.security.** {*;}
-keep class com.taobao.dp.**{*;}
-keep class com.alibaba.wireless.security.**{*;}
-keep interface mtopsdk.mtop.global.init.IMtopInitTask {*;}
-keep class * implements mtopsdk.mtop.global.init.IMtopInitTask {*;}
android/app/build.gradle
的 buildTypes 中添加
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
android/app/build.gradle
的 dependencies 中添加 百川组件
dependencies {
.....
//支付宝(可选)
implementation 'com.alipay.android.app.cashier:standardcashier-single:15.6.5@aar'
compileOnly 'com.alipay.mobile.android.securitysdk:apsecuritysdk-all:3.3.0'
//登陆
implementation 'com.ali.auth.sdk:alibabauth_core:2.0.0.6@aar'
implementation 'com.ali.auth.sdk:alibabauth_ui:2.0.0.6@aar'
implementation 'com.ali.auth.sdk:alibabauth_ext:2.0.0.6@aar'
//安全组件
implementation 'com.taobao.android:securityguardaar3:5.4.171@aar'
implementation 'com.taobao.android:securitybodyaar3:5.4.99@aar'
implementation 'com.taobao.android:avmpaar3:5.4.36@aar'
implementation 'com.taobao.android:sgmiddletieraar3:5.4.9@aar'
//Mtop
implementation 'com.taobao.android:mtopsdk_allinone_open:3.1.2.5@jar'
//applink
implementation 'com.alibaba.sdk.android:alibc_link_partner:4.1.15@aar'
//ut
implementation 'com.taobao.android:utdid4all:1.5.2'
implementation 'com.alibaba.mtl:app-monitor-sdk:2.6.4.5_for_bc'
// 电商基础组件
implementation 'com.alibaba.sdk.android:AlibcTradeCommon:4.0.0.8@aar'
implementation 'com.alibaba.sdk.android:AlibcTradeBiz:4.0.0.8@aar'
implementation 'com.alibaba.sdk.android:nb_trade:4.0.0.8@aar'
implementation 'com.alibaba:fastjson:1.2.41'
.....
}
@mimicode 可以这样处理,我这边这样处理之后就可以了
flutter build apk --release --no-shrink
@mimicode 可以这样处理,我这边这样处理之后就可以了
flutter build apk --release --no-shrink
我升到flutter 1.20.2 发现也没问题
@mimicode 可以这样处理,我这边这样处理之后就可以了
flutter build apk --release --no-shrink
我升到flutter 1.20.2 发现也没问题
升级了1.22.0-12.1.pre190
仍然不支持,不混淆就成
防混淆是不错的办法 感谢楼上同学提供的思路 exmple已配置防混淆 release包可以正常初始化 如仍有问题请重新打开此iss
我也遇到了这个问题。所以去仔细研究了下。发现高版本的Flutter主动的开启了Android R8压缩,将安全图片yw_1222_baichuan.jpg
给压缩为0KB的虚拟文件了。
也不知什么原因我使用flutter build apk --release --no-shrink
依旧会对资源文件进行压缩。
在我实在没有什么办法,已经打算使用反编译器将安全图片替换时,发现Android官方提供了在R8压缩时保留自定义资源文件方法。
我尝试在项目中新建res/raw/keep.xml
,并写入如下代码:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:keep="@drawable/yw_1222_baichuan。" />
然后我直接使用flutter build apk
,成功将未压缩的安全图片打包进了Apk中。并且能正常使用淘宝SDK的方法。
由于本人并不是专业的Android开发人员,如有不对的地方请指出!我会及时修正!!!
参考楼上,如果还不行可以关闭资源优化,在 gradle.properties 添加 android.enableResourceOptimizations=false。再试试
demo的debug包可以正常使用,但是release也是初始化失败