uni-app 离线打包H5+app高版本手机无法安装

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

uni-app 离线打包H5+app高版本手机无法安装

操作步骤:

直接导入HBuilder-Integrate-AS工程后直接运行可以在高版本手机运行,替换uniapp代码为H5+app代码,并根据文档修改配置和appid,然后打包

预期结果:

在高版本手机可以安装运行

实际结果:

apk安装失败

bug描述:

直接导入HBuilder-Integrate-AS工程后直接运行可以在高版本手机运行,替换uniapp代码为H5+app代码,并根据文档修改配置和appid,在低版本手机可与安装并运行,但是在高版本手机无法安装。

Image

信息类型 信息内容
产品分类 HTML5+
HBuilderX版本号 4.36
手机系统 Android
手机系统版本号 Android 14
手机厂商 OPPO
手机机型 一加Ace 2 PHK110
打包方式 离线

4 回复

通过命令行安装一下apk文件,看一下报什么错?


Performing Streamed Install adb: failed to install e://aa.apk: Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl1884102202.tmp/base.apk (at Binary XML file line #59): io.dcloud.PandoraEntry: Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present]

回复 小生复小生: 加了目标版本可以了

在uni-app中,离线打包H5+应用时遇到高版本手机无法安装的问题,通常与APK的签名、兼容性和配置有关。以下是一些常见的排查和解决方法,主要通过代码和配置示例来展示。

1. 检查APK签名

确保APK已正确签名。签名是Android应用安装的必要条件,未签名的APK无法安装。使用以下命令对APK进行签名:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name

其中,my-release-key.keystore 是你的签名文件,alias_name 是签名别名。

2. 配置manifest.json

确保manifest.json中的配置与你的应用需求相匹配,特别是app-plus下的配置。以下是一个示例配置:

{
  "mp-weixin": {},
  "app-plus": {
    "name": "MyApp",
    "version": {
      "name": "1.0.0",
      "code": "100"
    },
    "distribute": {
      "sdkConfigs": {}
    },
    "compilerVersion": "3.0.0",
    "android": {
      "permissions": [
        "android.permission.INTERNET"
      ],
      "package": "com.example.myapp",
      "compileOptions": {
        "minSdkVersion": "21",
        "targetSdkVersion": "30"
      }
    }
  }
}

注意minSdkVersiontargetSdkVersion的设置,确保它们与你的目标设备兼容。

3. 检查AndroidManifest.xml

在离线打包过程中,生成的AndroidManifest.xml文件可能需要根据具体需求进行调整。确保没有遗漏或错误的权限声明。

4. 使用最新版本的uni-app和HBuilderX

确保你使用的是uni-app和HBuilderX的最新版本,因为新版本通常修复了旧版本中的已知问题。

5. 检查APK大小

如果APK过大(超过某些设备的限制),可能会导致安装失败。尝试优化APK大小,例如移除不必要的资源或代码。

6. 调试和日志

使用Android Studio的Logcat工具来查看安装过程中的日志信息,这有助于识别具体的错误原因。

adb logcat | grep -i "package"

上述命令可以帮助你过滤出与包安装相关的日志信息。

通过上述步骤,你应该能够定位并解决uni-app离线打包H5+应用在高版本手机上无法安装的问题。如果问题依旧存在,建议查看uni-app的官方文档或社区论坛以获取更多帮助。

回到顶部