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,一经查实,立即删除!

相关文章

使用yum开源包管理器的GNU/Linux发行版创建本地repo源

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任,图解仅供参考,请悉知!相关配置操作是在一个全新的演示环境下进行的,演示环境中没有任何有价值的数据,但这并不代表摆在你面前的环境也是如此。生产环境…

代码随想录刷题笔记-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…

【Vue】1-4、打包发布

一、配置 webpack 的打包发 在 package.json 文件的 scripts 节点下,新增 build 命令如下: "scripts": {"dev": "webpack serve", // 开发环境中运行 dev 命令"build": "webpack --mode …

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

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

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

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

爬取火车售票网站点名称及代号

相关代码: # Time: 2024/1/22 22:10 # Author: 马龙强 # File: 爬取站点信息.py # software: PyCharm import re import json import requests# 定义URL url https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version1.9028# 发送GET请…

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…

HarmonyOS漫谈---天下苦安卓久已,破立之间如何取舍?

HarmonyOS要学习IOS的生态,显然是在android阵营遇到了一些不好的体验 作为一个普通的android手机用户,日常使用手机时有哪些很别扭的体验? 有没有因为记不住手机上那么多应用的用户名和密码,而把所有的应用都设置为相同的用户名和密码?每个app都有自己的收藏功能,当你需…

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

题目描述: 小明有一个数组,他想从数组任意元素开始向后遍历,找出所有上升子序列,并计算出最长的上升子序列的长度。 数据范围: 每组数据长度满足 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;发展非常迅速。而传统的关系数据库在应付超大规模和高并发的网站已经显得力不从…

Vue的状态管理Vux

文章目录 一、介绍二、install三、store1、介绍2、创建并全局引入3、单一状态树4、多模块状态树&#xff08;无命名空间&#xff09;5、多模块状态树&#xff08;有命名空间&#xff09; 一、介绍 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 库当我们的应用遇到多个…

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.…

探索 Xind3 生态系统,解锁铭文资产的新玩法

铭文市场的兴起&#xff0c;不仅是新资产发行方案向市场的代表&#xff0c;更是新资产革命的代表。通过“公平启动”的方式&#xff0c;任何人都可以按照先到先得的原则“铸造”资产。虽然这看起来是意识形态上的新升级&#xff0c;但实际上最火的铭文风潮是由CEX引发的。 我们…