uni-app 打包后 在Android 8.1的机子上 无法安装

发布于 1周前 作者 sinazl 来自 Uni-App

uni-app 打包后 在Android 8.1的机子上 无法安装

开发环境 版本号 项目创建方式
Windows 11 HBuilderX

示例代码:

可以正常安装


### 操作步骤:


可以正常安装

预期结果:

可以正常安装


### 实际结果:


可以正常安装

bug描述:

由于项目需要, 适配Android8.1的系统, 项目使用的云打包, 云端证书
今天制作的自定义基座, 真机运行时卡到"正在安装机子", 然后直接安装apk包时, 提示安装失败.
而换用以前的自定义基座, 可以正常安装.
然后新建个空白项目后, 制作自定义基座也无法安装.
请问是修改了"minSdkVersion"默认的值吗?
我们应该如何解决?


2 回复

在 Android 8.1 设备上无法安装 uni-app 打包后的应用,可能是由于以下几个原因导致的。以下是一些常见的排查和解决方法:


1. 检查 APK 文件是否完整

  • 确保打包生成的 APK 文件没有损坏。
  • 重新打包一次,或者尝试在其他设备上安装,确认 APK 文件是否正常。

2. 检查 Android 版本兼容性

  • 确保 manifest.json 中的 minSdkVersiontargetSdkVersion 设置正确。
  • manifest.json 中,确保 minSdkVersion 小于或等于 Android 8.1 的 API 级别(API 27)。
    {
      "app-plus": {
        "android": {
          "minSdkVersion": 16, // 确保支持 Android 8.1
          "targetSdkVersion": 30 // 根据需求设置
        }
      }
    }

3. 检查签名问题

  • 如果 APK 是正式发布版本,确保使用了正确的签名文件。
  • 如果是调试版本,确保使用的是调试签名。
  • 重新生成签名文件并重新打包。

4. 检查安装来源权限

  • Android 8.1 默认禁止从未知来源安装应用。
  • 在设备的 设置 -> 安全 -> 未知来源 中,允许安装来自未知来源的应用。

5. 检查 APK 架构兼容性

  • 确保打包时选择了正确的 CPU 架构(如 armeabi-v7a、arm64-v8a)。
  • manifest.json 中配置支持的 CPU 架构:
    {
      "app-plus": {
        "android": {
          "abiFilters": ["armeabi-v7a", "arm64-v8a"]
        }
      }
    }

6. 检查应用包名冲突

  • 如果设备上已经安装了相同包名的应用,可能会导致安装失败。
  • manifest.json 中修改 appid(包名),确保唯一性:
    {
      "appid": "com.example.yourapp",
      "name": "YourApp"
    }

7. 检查存储空间

  • 确保设备有足够的存储空间来安装应用。

8. 查看安装日志

  • 使用 adb 工具查看安装日志,获取具体的错误信息。
    adb install your_app.apk
    adb logcat | grep "Install"
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!