uniapp 离线打包视频播放报错access denied finding property "vendor.display"如何解决?

在uniapp进行离线打包时,视频播放模块报错"access denied finding property ‘vendor.display’"该如何解决?这个错误出现在Android端,尝试过调整权限设置但无效。想知道具体是什么原因导致的,以及正确的解决方法。开发环境是HBuilderX 3.6.18,使用的视频组件是uni-video。是否需要修改gradle配置或添加特定权限?

2 回复

在AndroidManifest.xml中添加:

<application android:usesCleartextTraffic="true">
    <meta-data android:name="android.allow_untrusted_touches" android:value="true"/>
</application>

检查权限并确保视频文件路径正确。


在UniApp离线打包时遇到access denied finding property "vendor.display"错误,通常是由于Android系统权限或硬件加速配置问题引起的。以下是解决方案:

1. 检查硬件加速配置

AndroidManifest.xml中,确保已正确配置硬件加速:

<application
    android:hardwareAccelerated="true"
    ... >
    <!-- 其他配置 -->
</application>

如果已启用,尝试关闭硬件加速测试:

<application
    android:hardwareAccelerated="false"
    ... >

2. 更新基础库或引擎

  • 确保使用最新版本的HBuilderX和SDK。
  • 检查UniApp原生插件或自定义模块是否兼容当前Android版本。

3. 添加系统属性忽略(临时方案)

MainActivity.javaonCreate方法中添加以下代码忽略该属性访问错误:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // 忽略属性访问错误
    try {
        Class<?> systemProperties = Class.forName("android.os.SystemProperties");
        Method set = systemProperties.getMethod("set", String.class, String.class);
        set.invoke(null, "vendor.display.disable_external_display", "true");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

4. 检查设备兼容性

  • 在真机不同Android版本(特别是9.0及以上)测试。
  • 某些设备厂商定制ROM可能限制属性访问,需联系设备厂商或使用通用设备测试。

5. 替换视频播放组件

如果使用<video>组件,尝试改用原生播放器插件(如uni-app官方插件或第三方兼容插件)。

总结步骤:

  1. 修改AndroidManifest.xml中硬件加速设置。
  2. 更新开发环境及依赖库。
  3. 添加代码忽略属性错误(仅临时)。
  4. 测试多设备兼容性。
  5. 更换视频播放方案。

通常通过调整硬件加速配置或更新SDK即可解决。如果问题持续,提供具体Android版本和设备型号以便进一步排查。

回到顶部