react-native构建android调试包报错

app-debug.apk包安装到vivo x21手机报错/data/app/vmdl382318695.tmp/base.apk using APK Signature Scheme v2: SHA-256 digest of contents did not verify

背景:自己买了个vivo x21准备给自己做app开发的调试机器

问题:启用开发者选项和打开use调试后,每次构建都会报错

具体报错如下:

1
2
3
4
5
java.util.concurrent.ExecutionException: 
com.android.builder.testing.api.DeviceException:
com.android.ddmlib.InstallException:
INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from
/data/app/vmdl382318695.tmp/base.apk using APK Signature Scheme v2: SHA-256 digest of contents did not verify

在网上查了很多资料,都没有好的解决方案只能一个一个试, 后面发现解决办法很简单

解决方案:

  1. 进入android目录,清除debug构建记录
1
2
cd android && ./gradlew clean

  1. 插拔下手机usb,在运行以下命令
1
2
react-native android

ps: 亲测可行, 插拔usb会重置所有的连接信息,网上是这样说的。注意:usb配置要改成MTP(文件传输协议)

其他额外的知识

解决app-debug.apk包签名问题

把debug.keystore签名文件放到项目根目录下,然后执行下面的命令

1
./gradlew assembleDebug --stacktrace --info
解决usb验证应用是置灰的

打开通过usb验证应用

Use below command to turn off ‘Verify apps over USB’

1
2
// 关闭
adb shell settings put global verifier_verify_adb_installs 0

Use below command to turn on ‘Verify apps over USB’

1
2
// 启用
adb shell settings put global verifier_verify_adb_installs 1

To get values, use below command

1
2
// 获取配置
adb shell settings get global verifier_verify_adb_installs