Unity应用在车机上启动有概率黑屏的解决方案

问题描述

最近将游戏适配到车机上(Android系统),碰到了一个严重bug,启动的时候有概率会遇到黑屏,表现就是全黑,无法进入Unity的场景。

经过查看LogCat日志,也没有任何报错,也没有任何的Unity日志输出。

经过比较正常的时候和非正常的时候的日志,发现正常的时候会有这条日志。

ActivityTaskManager: Displayed com.xxx.xxx/com.unity3d.player.MainActivity: +285ms

其中MainActivity是继承于UnityPlayerActivity的我们自己写的类。

而黑屏的时候没有这条日志,也就是并没有启动成功UnityPlayerActivity,在 UnityPlayerActivity生命周期中写了日志,发现有执行到,但是表现就是黑屏。

排查问题

经过了以下几种方式排查:

  • 删除接入的第三方SDK:黑屏
  • 删除Plugin/Android下的所有代码:黑屏
  • 直接Unity出包:黑屏
  • 删除所有场景,新建了一个新场景:黑屏
  • 升级Unity版本:黑屏
  • 修改targetsdk为30、31、32、33、34:黑屏
  • jdk改为8和11:黑屏
  • 新建一个Unity工程:正常不会黑屏
  • 将新建的工程的ProjectSetting文件覆盖到黑屏的工程:正常不会黑屏

经过对问题的排查,最终定位到了应该是ProjectSetting的某个设置导致的,但是设置那么多,于是继续排查,将空工程的配置一项一项修改为黑屏的设置,最终排查到了这个选项导致的。

解决方案

将Resizable Window勾选上,会有概率黑屏,Unity场景都进不了,Unity的相关日志也没有任何输出。取消勾选"Resizable Window"这样直出apk是没有再碰到黑屏问题了。

但是接入了第三方SDK后,会出现了别的问题,也就是应用尺寸不对了。

经过尝试,修改了AndroidManifest.xml的下面选项,则目前结果正常了。

将主Activity加上android:resizeableActivity="true",这样既可解决。

 上面的应该是对于会改变应用尺寸的系统,可能需要这么操作才会避免黑屏问题,猜测是因为系统的代码有bug导致需要这么处理规避问题,如果你也碰到这个问题,可以进行如上尝试。

总结

如果你在车机上碰到Unity应用有概率黑屏,可以尝试如下设置:

  1. 在PlayerSetting里将Android下的Resizable Window取消勾选,注意是不要勾选
  2. 在AndroidManifest.xml里将主Activity的android:resizeableActivity设置为true

这样可能能解决你们的问题。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/651005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录刷题笔记-Day12

1. 二叉树的递归遍历 144. 二叉树的前序遍历https://leetcode.cn/problems/binary-tree-preorder-traversal/94. 二叉树的中序遍历https://leetcode.cn/problems/binary-tree-inorder-traversal/145. 二叉树的后续遍历https://leetcode.cn/problems/binary-tree-postorder-tra…

java获取linux和window序列号

前言 获取系统序列号在Java中并不是一个直接支持的功能,因为Java语言本身并不提供直接访问硬件级别的信息,如CPU序列号。但是,我们可以使用一些平台特定的工具或命令来实现这一功能。下面我将展示如何使用Java获取Windows和Linux系统上的CPU…

【Qt无门槛入门】信号以及信号机制及其常用控件(1)

信号与信号槽 信号源:由哪个控件发出的信号。 信号的类型:用户进行不同的操作,就可能出发不同的信号。 信号处理的方式:槽(slot)某个对象接收到这个信号之后,就会做一些相关的处理动作。但是Qt对象不会无故…

【MAC】Multi-Level Monte Carlo Actor-Critic阅读笔记

基本思想: 利用多层次蒙特卡洛方法(Multi-Level Monte Carlo,MLMC)和Actor-Critic算法,解决平均奖励强化学习中的快速混合问题。 快速混合? 在强化学习中,当我们说一个策略"混合得快"…

HCS-华为云Stack-FusionSphere

HCS-华为云Stack-FusionSphere FusionSphere是华为面向多行业客户推出的云操作系统解决方案。 FusionSphere基于开放的OpenStack架构,并针对企业云计算数据中心场景进行设计和优化,提供了强大的虚拟化功能和资源池管理能力、丰富的云基础服务组件和工具…

文心一言情感关怀之旅

【AGIFoundathon】文心一言情感关怀之旅,让我们一起来体验吧! 上传一张照片,用ernie-bot生成专属于你的小故事! 此项目主要使用clip_interrogator获取图片的关键信息,然后将此关键信息用百度翻译API翻译成中文后,使用封装了⼀⾔API的Ernie Bot SDK(ernie-bot)生成故事…

「研发部」GitFlow规范-升级版(二)

前言 上一篇文章简单整理过一次产研团队的GitFlow《Git 分支管理及Code Review 流程 (一)》 GitFlow是一种流行的Git分支管理策略,它提供了一种结构化的方式来管理项目的开发和发布流程。以下是GitFlow规范的主要组成部分: 主要分支: mast…

上升子序列的最大长度,递归-记忆化搜索-动态规划三步走

题目描述: 小明有一个数组,他想从数组任意元素开始向后遍历,找出所有上升子序列,并计算出最长的上升子序列的长度。 数据范围: 每组数据长度满足 1≤n≤200 1≤n≤200 , 数据大小满足 1≤val≤350 1≤val≤…

牛客BC151 数位五五

今天有点懒&#xff0c;就是一篇水文吧。 第一种方法用循环的方式来解决。 int main() {int a, b, count 0;scanf("%d %d", &a, &b);for (int i a; i < b; i) {int val i, sum 0;while (val) {sum val % 10;val / 10;}if (sum % 5 0) count;}pri…

从零学习Hession RPC

为什么学习Hessian RPC&#xff1f; 存粹的RPC&#xff0c;只解决PRC的四个核心问题&#xff08;1.网络通信2.协议 3.序列化 4.代理&#xff09;Java写的HessianRPC落伍了&#xff0c;但是它的序列化方式还保存着&#xff0c;被Dubbo(Hessian Lite)使用。 被落伍&#xff0c;只…

缓存技术—redis

一、redis介绍 1.什么是NoSQL NosQL (Not-Only:sQL)&#xff0c;泛指非关系型的数据库(关系型数据库: 以二维表形式存储数据) 非关系型的数据库现在成了一个极其热门的新领域&#xff0c;发展非常迅速。而传统的关系数据库在应付超大规模和高并发的网站已经显得力不从…

Django笔记(六):DRF框架

首 前后端分离是互联网应用开发的标准使用方式&#xff0c;让前后端通过接口实现解耦&#xff0c;能够更好的进行开发和维护。 RESTful接口常见规范 在接口设计中&#xff0c;大家遵循一定的规范可以减少很多不必要的麻烦&#xff0c;例如url应有一定辨识度&#xff0c;可以…

精品代码,接稳了!EI顶刊复现:计及风电波动及电解槽运行特性的电氢混合储能容量优化配置程序代码!

适用平台/参考文献&#xff1a;MatlabYalmipCplex/Gurobi&#xff1b; 参考文献&#xff1a;中国电机工程学报首发论文《平抑风电波动的电-氢混合储能容量优化配置》 程序首先利用EMD将原始风电功率信号分解为直接并网分量和混合储能系统&#xff08;HESS&#xff09;功率任务…

算法训练营Day60(单调栈)

84.柱状图的最大矩形 84. 柱状图中最大的矩形 - 力扣&#xff08;LeetCode&#xff09; 注意首尾加0的细节就可 class Solution {public int largestRectangleArea(int[] heights) {Deque<Integer> stack new LinkedList<>();int[] newHeight new int[heights.…

Windows上安装Linux系统

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、WSL是什么&#xff1f;二、WSL安装步骤1.开启wsl支持2.安装wsl3.运行wsl4.环境配置 三、WSL删除引用 前言 提示&#xff1a;这里可以添加本文要记录的大概…

Dockerfile简介和基础实践

文章目录 1、Dockerfile简介1.1、Dockerfile解决的问题1.2、docker build 构建流程1.3、关键字介绍 2、Dockerfile 实践2.1、基本语法实践 --- golang2.1.1 问题检查 2.2、基本语法实践 --- gcc 总结 1、Dockerfile简介 Dockerfile是一个创建镜像所有命令的文本文件, 包含了一…

STM32 PWM驱动设计

单片机学习&#xff01; 目录 文章目录 前言 一、PWM驱动配置步骤 二、代码示例及注意事项 2.1 RCC开启时钟 2.2 配置时基单元 2.3 配置输出比较单元 2.4 配置GPIO 2.5 运行控制 三、PWM周期和占空比计算 总结 前言 PWM本质是利用面积等效原理来改变波形的有效值。 一、PWM驱动…

C++初阶入门之命名空间和缺省参数的详细解析

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂 目录 一.前言 二.命名空间 2.1命名冲突的例子 2.2解决方案 2.3命…

SPA单页面的讲解(超级详细)

目录 一、什么是SPA 二、SPA和MPA的区别 单页应用与多页应用的区别 单页应用优缺点 三、实现一个SPA 原理 实现 hash 模式 history模式 四、题外话&#xff1a;如何给SPA做SEO SSR服务端渲染 静态化 使用Phantomjs针对爬虫处理 一、什么是SPA SPA&#xff08;sin…

这是一片测试文章

这是一片测试文章 这是一片测试文章 这是一片测试文章 这是一片测试文章 这是一片测试文章 这是一片测试文章 真的是测试文章 -111122225555444433333333222211111 dddddaaa