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.java的onCreate方法中添加以下代码忽略该属性访问错误:
@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官方插件或第三方兼容插件)。
总结步骤:
- 修改
AndroidManifest.xml中硬件加速设置。 - 更新开发环境及依赖库。
- 添加代码忽略属性错误(仅临时)。
- 测试多设备兼容性。
- 更换视频播放方案。
通常通过调整硬件加速配置或更新SDK即可解决。如果问题持续,提供具体Android版本和设备型号以便进一步排查。

