Unity 升级targetSdkVersion33 解决方法

这篇具有很好参考价值的文章主要介绍了Unity 升级targetSdkVersion33 解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

因为谷歌上传要求,需要升级targetsdk33下面一些解办法:
使用版本2019.4.20f1

  1. 因为31以后sdk缺少dx文件,解决方案是这些文件在文件名称更改为dx.bat.
    解决方法如下:
    1)进入项目SDK目录下的build-tools\33.0.2 目录,比如:C:\Users\user\AppData\Local\Android\Sdk\build-tools\33.0.2
    2)找到一个名为d8.bat的文件,这是Windows批处理文件。
    3)复制文件重命名d8.bat为dx.bat。
    4)进入项目SDK目录下的build-tools\33.0.2\lib目录,比如:C:\Users\user\AppData\Local\Android\Sdk\build-tools\33.0.2\lib
    5)在将d8.jar复制重命名为dx.jar
    2.需要在Edit-projectSettings-player-publishingsettings,勾选以下设置:

Unity 升级targetSdkVersion33 解决方法,unity,游戏引擎
1).修改生成的两个gardle文件:
Assets/Plugins/Android/mainTemplate.gradle
Assets/Plugins/Android/launcherTemplate.gradle
顶部有下列注释移除:
// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
添加以下代码:

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        // Must be Android Gradle Plugin 3.6.0 or later. For a list of
        // compatible Gradle versions refer to:
        // https://developer.android.com/studio/releases/gradle-plugin
        classpath 'com.android.tools.build:gradle:4.0.1'
    }
}

allprojects {
   repositories {
      google()
      mavenCentral()
      flatDir {
        dirs 'libs'
      }
   }
}

按需要修改classpath ‘com.android.tools.build:gradle:4.0.1’

3).AndroidManifest.xml文件里需要添加android:exported=“true”,

 <application>
     <activity android:name="com.unity3d.player.UnityPlayerActivity"
               android:theme="@style/UnityThemeSelector"
               android:exported="true">
         <intent-filter>
             <action android:name="android.intent.action.MAIN" />
             <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
     </activity>
 </application>

如果Activity,Receiver,Service使用到了标签,则是要显示声明android:exported的值
里面的声明 android:exported 一般改为false 即可 ,但是,如果配置了 LAUNCHER ,就需要把声明改为true
,不然安装时提示解析错误

参考地方:

https://blog.csdn.net/zyl766800/article/details/127693050
https://google-developers.gonglchuangl.net/ar/develop/unity-arf/android-12-build?hl=zh-cn
https://blog.csdn.net/wq6ylg08/article/details/121882199

补充:如果打aab包,还需要在launcherTemplate.gradle末尾添加如下代码:文章来源地址https://www.toymoban.com/news/detail-697860.html

tasks.whenTaskAdded { task ->
    if (task.name.startsWith("bundle")) {
        def renameTaskName = "rename${task.name.capitalize()}Aab"
        def flavor = task.name.substring("bundle".length()).uncapitalize()
        tasks.create(renameTaskName, Copy) {
            def path = "${buildDir}/outputs/bundle/${flavor}/"
            from(path)
            include "launcher-release.aab"
            destinationDir file("${buildDir}/outputs/bundle/${flavor}/")
            rename "launcher-release.aab", "launcher.aab"
        }
 
        task.finalizedBy(renameTaskName)
    }
}
//不然会报找不到 “”launcher.aab”或“launcher-release.aab”的错误.

到了这里,关于Unity 升级targetSdkVersion33 解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity 框架】QFramework v1.0 使用指南 工具篇:05. ResKit 资源管理&开发解决方案 | Unity 游戏框架 | Unity 游戏开发 | Unity 独立游戏

    Res Kit,是资源管理快速开发解决方案 特性如下: 可以使用一个 API 从 dataPath、Resources、StreammingAssetPath、PersistentDataPath、网络等地方加载资源。 基于引用计数,简化资源加载和卸载。 拥抱游戏开发流程中的不同阶段 开发阶段不用打 AB 直接从 dataPath 加载。 测试阶段支持只需打

    2024年02月01日
    浏览(44)
  • Unity 3D:获取未激活游戏对象的方法

    一、获取已激活游戏对象 Gameobject.Find(\\\"游戏对象名\\\") //根据对象名直接获取游戏对象 这个方法可以找到指定的对象,但是一些缺陷。 1、如果场景中有重名,此方法找到的是Hierarchy从上至下第一次出现此对象名的对象。 2、如果对象的activeSelf为false,那么这个方法永远无法找到

    2023年04月08日
    浏览(32)
  • unity 之 GetComponent 获取游戏对象上组件实例方法

    GetComponent 是Unity引擎中用于获取游戏对象上组件实例的方法。它允许您从游戏对象中获取特定类型的组件,以便在脚本中进行操作和交互。 GetComponent ComponentType (): 这是一个泛型方法,用于从当前游戏对象上获取指定类型的组件。在 ComponentType 部分,您应该提供您想要获取的

    2024年02月02日
    浏览(34)
  • 【图文详解】Unity存储游戏数据的几种方法

    在Unity中,常用的数据存储方法包括PlayerPrefs、ScriptableObject、JSON、XML和数据库等。 PlayerPrefs是Unity自带的一种简单的键值存储系统,适合存储一些简单的游戏数据。ScriptableObject是一种Unity类,可用于创建可序列化的对象并存储数据。JSON和XML是轻量级的数据交换格式,可以通过

    2023年04月08日
    浏览(41)
  • Android 13(targetSdkVersion:33)必需添加com.google.android.gms.permission.AD_ID

    关于这个问题个人觉得Google真有点变态。 大概的意思是:你要适配Android 13,必须将targetSdkVersion升至33,这都很正常;你必须添加com.google.android.gms.permission.AD_ID的权限获取,OK,虽然不知道我的APP没有广告为何一定要我加这个,你要加就加呗!!!但变态的是在提交新版本审核

    2024年02月11日
    浏览(38)
  • Unity 从2018升级为2021之后 IAP(内购插件)报错解决

    从老项目升级为2021高版本之后报了个错 大概就是… 这种 具体的我也没粘贴全部过来 原因貌似是 PackManger里面的IPA包和项目自带的冲突了 解决方法: 删除项目文件夹下面的: 这些Dll 然后还会报个错 ,那个是版本更新API了 打开PurchaseManager 增加一行: 就可以了

    2024年02月10日
    浏览(43)
  • Unity 之 抖音小游戏本地数据最新存储方法分享

    抖音小游戏是一种基于抖音平台开发的小型游戏,与传统的 APP 不同,抖音小游戏运行在抖音客户端内部,可以通过抖音的分享、推荐等功能进行传播。在抖音小游戏开发过程中,文件存储系统是一个非常重要的组成部分,本文将详细介绍抖音小游戏文件存储系统的实现原理

    2024年02月11日
    浏览(41)
  • Unity 之 转微信小游戏本地数据存储方法分享

    近期在将Unity转换为小游戏的时候发现在读写本地文件的时候,使用 Application.persistentDataPath 缓存路径来保存文件失败,原因是WebGL的平台限制。所以导致了原有读写本地文件的代码需要根据平台进行修改。 一种最简单的方式就是将原来存储到文件中的内容,在WebGL平台使用

    2024年02月05日
    浏览(52)
  • Unity之获取游戏物体对象或组件的几个方法

    在unity的实际项目开发中,往往都要获取游戏内的各种物体,比如玩家(Player),怪物(Monster),或者其他,那有什么方法可以快速获取呢,下面就来介绍unity获取游戏对象的几个方法 GameObject.Find GameObject.Find 通过游戏物体的名称获取对象 使用方法 缺点: 会遍历当前整个场

    2024年02月01日
    浏览(31)
  • Unity 语法详解之查找游戏物体的方法(含查找隐藏物体)

    为了更好的看懂,有一个非常基础的知识,如果不知道可以移步去了解一下哦 unity | gameobject和transform的区别和关联通俗解释_gameobject transform_菌菌巧乐兹的博客-CSDN博客 一、前情提要 大写的 GameObject是个类,里面写满了物体有关的代码 小写的 gameObject指的是物体本身 大写的

    2024年02月12日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包