uni-app HBuilderX使用公共证书打的apk安装包无法安装到android8的pda设备中

uni-app HBuilderX使用公共证书打的apk安装包无法安装到android8的pda设备中

操作步骤:

  1. 使用HBuilderX新建项目,选择【默认模版】
  2. 发行 - 使用App - 云打包
  3. 选择【使用公共测试证书】
  4. 单击【打包】操作
  5. 等apk安装包生产以后,使用usb线连接一个android8的pda设备(记得打开开发者模式并选择调试)
  6. 在控制台单击[打开所在目录]
  7. 选择apk安装文件 - 右击 - 安装到手机 - 选择连接的手机
  8. 控制台报错

预期结果:

应该提示安装成功

实际结果:

15:28:08.920 开始安装 `UNI`1CA900D`20240221152746.apk 到设备2335604 中...
15:28:12.084 Performing Push Install
/Users/zhengzhiyong/workspace/RuoYi-App/unpackage/release/apk/`UNI`1CA900D`20240221152746.apk: 1 file pushed, 0 skipped. 8.9 MB/s (12946868 bytes in 1.383s)
pkg: /data/local/tmp/`UNI`1CA900D__20240221152746.apk
Failure [INSTALL_FAILED_NO_MATCHING_ABIS]
15:28:12.084 安装失败

bug描述:

HBuilderX使用公共证书打的apk安装包无法安装到android8的pda设备中,我们是老项目,去年8月份是可以正常打包安装的,现在pda能安装去年8月份打的apk包,但是无法安装最新打的apk包; 我新建了uniapp模版项目,测试重新生成apk包,也无法在android8的pda设备中安装。 而普通的android手机却可以正常安装的。 附近为我本地【新建的uniapp模版项目测试生成的apk包】


更多关于uni-app HBuilderX使用公共证书打的apk安装包无法安装到android8的pda设备中的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

之前一直可以的,感觉是云打包升级了,导致不兼容

更多关于uni-app HBuilderX使用公共证书打的apk安装包无法安装到android8的pda设备中的实战教程也可以访问 https://www.itying.com/category-93-b0.html


看看cpu

是pda设备的cpu吗? 具体在哪里看

找到了,谢谢

在使用 HBuilderX 打包 Uni-app 项目时,如果您使用公共证书(即默认的测试证书)打包的 APK 文件无法安装到 Android 8(API 26)的 PDA 设备中,可能是由于以下原因导致的:

1. Android 8 的安全机制

  • Android 8 引入了更严格的安装机制,特别是对未签名的 APK 或使用测试证书签名的 APK 的安装限制。
  • 测试证书签名的 APK 可能会被 Android 8 及以上版本的系统拒绝安装。

2. 证书问题

  • 公共证书(测试证书)是不受信任的证书,Android 8 及以上版本可能会阻止安装。
  • 建议使用正式的签名证书对 APK 进行签名,而不是使用默认的测试证书。

3. APK 签名验证

  • 确保 APK 文件完整且未损坏。损坏的 APK 文件会导致安装失败。
  • 使用 adb 工具检查 APK 是否正确签名:
    apksigner verify --verbose your_app.apk
    
  • 如果签名有问题,重新签名 APK。

4. 设备设置

  • 确保 PDA 设备允许安装来自未知来源的应用。可以在设备的 设置 -> 安全 -> 未知来源 中启用。
  • 如果设备是企业设备,可能需要联系管理员安装应用。

5. 适配 Android 8

  • 确保您的 Uni-app 项目适配了 Android 8 及以上版本,例如:
    • manifest.json 中正确配置 targetSdkVersion
    • 检查是否有需要适配的权限或 API。

解决方法

  1. 使用正式签名证书

    • 在 HBuilderX 中,使用正式的签名证书对 APK 进行签名,而不是使用默认的测试证书。
    • 在 HBuilderX 的 manifest.json 中配置签名信息,或者通过命令行工具手动签名。
  2. 手动签名

    • 使用 jarsignerapksigner 工具对 APK 进行手动签名。可以参考以下步骤:
      jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore your_keystore.jks -storepass your_password your_app.apk alias_name
      zipalign -v 4 your_app.apk your_app_aligned.apk
      
  3. 检查设备兼容性

    • 确保设备的 Android 系统版本与 APK 的 minSdkVersiontargetSdkVersion 兼容。
  4. 使用调试模式

    • 如果只是用于调试,可以通过 adb install 命令直接安装 APK 到设备中:
      adb install your_app.apk
回到顶部