美文网首页
API level 升级到 31,在Android 12上启动黑

API level 升级到 31,在Android 12上启动黑

作者: GXT_Star | 来源:发表于2022-09-24 17:41 被阅读0次
    由于海外渠道上架Google play 已经要求上架的APP targetSdkVersion最低为31。升级支持安卓12 ;升级targetSdkVersion =31 buildToolsVersion = 31.0.0;迎来第一个坑buildToolsVersion编译报错 不支持

    既然升级到31,那么buildToolsVersion也需要跟着更新到31,当我们将targetSdkVersion升级到31的时候,buildToolsVersion也下载到31的版本的时候,会发现项目编译正常,但是运行报错。说你31的构建工具已经损坏,重新卸载后安装还是报错。所以不是下载过程的问题。在网上搜索了一番后解决了(感谢万能的网友),是由于ToolsVersion下载到31的版本的时候两个文件名不对。

    解决这个问题有两种方法

    一、降低targetSdkVersion版本 ,同时也降低buildToolsVersion版本,本来就是要升级,现在说降低,此方案只适合对targetSdkVersion没要求升级到31的项目。

    二、修改两个文件名称。

    1. 进入到自己SDK的目录;
    2. 进入到build-tools\31.0.0,修改 d8.bat 文件,将其名字改为dx;
    3. 进入到build-tools\31.0.0\lib目录,修改d8.jar文件,将其名字改为dx.jar
      (编译后还可能需要在设置里面切换jdk11)

    运行后发现进去游戏黑屏,API升级到33版本后经测试在android12/13机型上会卡在启动页面,打开调试日志也没报错。打印log发现也没有报错,打断点发现获取id时抛异常

    java.lang.SecurityException: getDeviceId: The user 10612 does not meet the require
    

    但google上架把READ_PHONE_STATE的权限去除了,这个不是主要原因也做了处理,经过一番查找发现是升级到12后的unity的原因

    查了一下这个问题,是因为TelephonyManager的listen函数在Android12过期了,如果没有授权READ_PHONE_STATE权限,此函数会抛出一个SecurityException
    而Unity在启用了自带的音频系统的情况下,恰巧在启动时机会去调用这个方法以实现“在用户接电话时游戏静音”的功能,抛出的异常影响了后续的流程导致卡死

    有人遇到了类似的问题,但是表现为崩溃:
    https://forum.unity.com/threads/android-12-telephony-crash.1287986/
    项目能升级引擎的话可以试试
    https://issuetracker.unity3d.com/issues/android-player-crashing-in-fmod-when-targetting-sdk-level-31
    里提到的修复的版本

    解决方案

    1.升级引擎到2019以上版本,我升级到2019.4.9F1和2019.4.40版本经测试在android12、13机型上均可正常进入游戏,不会卡死。
    2.如果项目不能升级引擎,也有一个解决办法:
    反编译classes.jar
    修改UnityPlayer类的addPhoneCallListener实现,判断
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) return;
    据说Android12开始不需要自己处理静音了
    再编回classes.jar
    备注:方法2自己试了下修改classes.jar后不知道怎么重新将.java编译回calss文件,因为在eclipse里边.java文件一直报错,没办法进行编译。


    修改后如图所示

    感谢博主原文这里进入

    有编译出错不会修改的小伙伴,可以直接替换我这边修改好的unity-classes.jar 直接替换就好方便你我他,
    百度网盘地址提取码:gusy

    相关文章

      网友评论

          本文标题:API level 升级到 31,在Android 12上启动黑

          本文链接:https://www.haomeiwen.com/subject/gfxaortx.html