按照文档那样搞,然后一直提示安全初始化失败,客户端错误code :1,错误信息:安全初始化失败;返回202,其实就是安全图片的问题,下面是错误提示
04-05 07:16:16.872 4064-4114/com.alibaba.sdk.trade.demo E/AliBC_Trade[3.1.1.99]: AppMonitor -> [com.alibaba.baichuan.trade.common.adapter.security.c.a:-1] AlibcSecurity init
ErrorCode = 202
com.alibaba.wireless.security.open.SecException:
at com.taobao.wireless.security.adapter.JNICLibrary.doCommandNative(Native Method)
at com.alibaba.wireless.security.a.j.a.getAppKeyByIndex(Unknown Source)
at com.alibaba.baichuan.trade.common.adapter.security.c.a(Unknown Source)
at com.alibaba.baichuan.trade.common.adapter.security.AlibcSecurityGuard.init(Unknown Source)
at com.alibaba.baichuan.trade.common.AlibcTradeCommon.init(Unknown Source)
at com.alibaba.baichuan.trade.biz.AlibcTradeBiz.init(Unknown Source)
at com.alibaba.baichuan.android.trade.AlibcTradeSDK.b(Unknown Source)
at com.alibaba.baichuan.android.trade.AlibcTradeSDK.a(Unknown Source)
at com.alibaba.baichuan.android.trade.e.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)
试了降低gradle的版本,这里我用到是3.4.2
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven {
url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/"
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
多次重新获取了安全图片,还是出现同样的问题。期间也多次重新生成签名文件,重新打包上传生成安全图片也没用,有些说是要直接把安全图片放到项目目录文件夹中,避免直接在android studio中会在drawable-v24中生成多的,这个我也试了,也没起到效果。最后我在app module里面加了签名设置后居然神奇的起作用了。(当然上面这些都还是照做的好,毕竟其他人的经验)
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.meiguo.baichuanad"
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
//签名设置
signingConfigs {
release {
keyAlias 'key0'
keyPassword 'meiguoyuan'
storeFile file('baichuan.jks')//加"../"表示该文件位于上一级即项目根路径下
storePassword 'meiguoyuan'
}
debug {
keyAlias 'key0'
keyPassword 'meiguoyuan'
storeFile file('baichuan.jks')
storePassword 'meiguoyuan'
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug{
signingConfig signingConfigs.debug
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
//支付宝(可选)
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'
}
//签名设置 signingConfigs { release { keyAlias 'key0' keyPassword 'meiguoyuan' storeFile file('baichuan.jks')//加"../"表示该文件位于上一级即项目根路径下 storePassword 'meiguoyuan' } debug { keyAlias 'key0' keyPassword 'meiguoyuan' storeFile file('baichuan.jks') storePassword 'meiguoyuan' } }
为了方便我的签名文件都是一样的。加入这个,密码和名字根据自己修改,签名文件路径我是放在app文件夹里面,如果放在其他目录也要修改。上传的apk文件生成安全图片使用debug和release都可以。然后就初始化成功了。