uni-app HBuilder X运行H5离线sdk自定义基座时,高版本手机H5工程代码无法同步到手机,控制台报错Permission denied

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

uni-app HBuilder X运行H5离线sdk自定义基座时,高版本手机H5工程代码无法同步到手机,控制台报错Permission denied

如附件图所示,高版本手机例如我用的华为Mate Xs2和小米14等,真机运行自定义调试基座时会提示文件创建删除无权限,基座安装成功,在手机上运行时工程的H5代码不能同步到手机,显示白板.但是在低版本手机是可以的,例如华为P9.

查看建议文档如下图,里面解决方案都试了还是不行,对于第7点,mac电脑在哪里删除已及更换手机USB驱动?

图片

图片


1 回复

在处理uni-app使用HBuilder X运行H5离线SDK自定义基座时遇到的高版本手机H5工程代码无法同步问题,以及控制台报错“Permission denied”的情况,这通常与权限设置或文件访问控制有关。以下是一些可能的解决方案,主要通过代码和配置示例来说明如何处理这类问题。

1. 检查并调整AndroidManifest.xml权限

首先,确保你的AndroidManifest.xml文件中包含了必要的权限。对于文件访问,你可能需要添加如下权限:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.yourapp">

    <!-- 其他配置 -->

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <!-- 针对Android 6.0及以上版本,运行时权限申请 -->
    <!-- 根据实际需要添加 -->
</manifest>

注意,从Android 6.0(API级别23)开始,对于读写外部存储,除了声明权限外,还需要在运行时请求权限。

2. 运行时权限请求(针对Android 6.0及以上)

在Java或Kotlin代码中,你需要检查并请求运行时权限。以下是一个简单的Java示例:

if (ContextCompat.checkSelfPermission(thisActivity,
        Manifest.permission.WRITE_EXTERNAL_STORAGE)
        != PackageManager.PERMISSION_GRANTED) {

    ActivityCompat.requestPermissions(thisActivity,
            new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
            MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);
}

在uni-app中,如果你使用的是原生插件或自定义组件来处理文件操作,确保这些组件也正确处理了运行时权限。

3. 检查HBuilder X和SDK版本

确保你的HBuilder X和uni-app SDK都是最新版本。有时候,这类问题是由于软件本身的bug导致的,而这些bug在新版本中可能已经被修复。

4. 清理项目和重新构建

尝试清理项目并重新构建。在HBuilder X中,你可以通过“项目”菜单选择“清理项目”和“重新构建”来操作。

5. 查看控制台和日志

详细查看HBuilder X的控制台输出以及手机的日志(如使用Android Studio的Logcat),可能会有更具体的错误信息,帮助你定位问题。

通过上述步骤,你应该能够诊断并解决“Permission denied”错误,确保H5工程代码能够正确同步到高版本手机上。如果问题依旧存在,建议检查是否有特定的手机系统或硬件兼容性问题。

回到顶部