Unity下android和ios的开发

Unity下android和ios的开发

android平台

内容来自:休闲社交游戏-淘金城堡课程

课程地址:Unity中文课堂 https://learn.u3d.cn/tutorial/xiu-xian-she-jiao-you-xi-tao-jin-cheng-bao

1 unity打包android包时出现以下错误:Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8

具体问题:Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8

错误: 加载主类 com.android.sdklib.tool.sdkmanager.SdkManagerCli 时出现 LinkageError

java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0

解决方法:是由于jdk版本和对应的android studio开发工具的Android SDK Command-line Tools工具的版本不一致导致的。

我用的jdk版本是“jdk-11.0.22”,然后我选的cmdline工具是8.0,测试通过,如下图

2 Could not download fastutil-8.4.0.jar (it.unimi.dsi:fastutil:8.4.0)

具体问题

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8

FAILURE: Build failed with an exception.

* What went wrong:

A problem occurred configuring root project 'Gradle'.> Could not resolve all artifacts for configuration ':classpath'.

   > Could not download fastutil-8.4.0.jar (it.unimi.dsi:fastutil:8.4.0)

      > Could not get resource 'https://plugins.gradle.org/m2/it/unimi/dsi/fastutil/8.4.0/fastutil-8.4.0.jar'.

         > Premature end of Content-Length delimited message body (expected: 19,052,190; received: 6,553,552)

* Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

解决方法

在 Build Settings 左下角打开 Player Settings,在 Android 平台图标选项卡下找到 Publishing Settings 区域

勾选 Custom Gradle Settings Template

 根据下面提示的路径打开 settingsTemplate.gradle 文件,修改其内容:

pluginManagement {

    repositories {

        **ARTIFACTORYREPOSITORY**

        maven {

          url 'https://mirrors.huaweicloud.com/repository/maven/'

        }

        //gradlePluginPortal()

        //google()

        //mavenCentral()    }

}

include ':launcher', ':unityLibrary'

**INCLUDES**

dependencyResolutionManagement {

    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)

    repositories {

        **ARTIFACTORYREPOSITORY**

        maven {

          url 'https://mirrors.huaweicloud.com/repository/maven/'

        }

        //google()

        //mavenCentral()        flatDir {

            dirs "${project(':unityLibrary').projectDir}/libs"

        }

    }

}

网上多是使用的阿里云镜像,但试了一下找不到相关包,故此改为华为云,如果华为云的也不能使用了,以下提供更多源备选:

阿里云:http://maven.aliyun.com/

中央仓库:https://repo1.maven.org/maven2/

网易:http://maven.netease.com/repository/public/

华为云:https://repo.huaweicloud.com/repository/maven/

腾讯云:https://mirrors.cloud.tencent.com/repository/maven/

中国科技大学:http://mirrors.ustc.edu.cn/maven/maven2/

南京大学:http://maven.nju.edu.cn/repository/

清华大学:https://repo.maven.apache.org/maven2/

北京理工大学:http://mirror.bit.edu.cn/maven/

东软信息学院:https://mirrors.neusoft.edu.cn/maven2/

中国科学院开源协会:http://maven.opencas.cn/maven/

北京交通大学:http://maven.bjtu.edu.cn/maven2/

如果想要全局配置镜像源地址,可以找到模板文件

# 参考路径,请根据自己实际安装的 Unity 版本和路径进行查找

C:\Program Files\Unity\Hub\Editor\2022.3.8f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates\settingsTemplate.gradle

修改该路径的文件内容即可。

另外如果通过这步以后,还提示以下错误:

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8

D:\Develop\Unity\HRVTest\Library\Bee\Android\Prj\Mono2x\Gradle\unityLibrary\src\main\java\com\unity\androidnotifications\UnityNotificationManager.java:164: 错误: 找不到符号

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU)

                                                        ^

  符号:   变量 TIRAMISU

  位置: 类 VERSION_CODES

D:\Develop\Unity\HRVTest\Library\Bee\Android\Prj\Mono2x\Gradle\unityLibrary\src\main\java\com\unity\androidnotifications\UnityNotificationManager.java:165: 错误: 找不到符号

            permissionGranted = mContext.checkCallingOrSelfPermission(Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED;

                                                                                         ^

  符号:   变量 POST_NOTIFICATIONS

  位置: 类 permission

注: D:\Develop\Unity\HRVTest\Library\Bee\Android\Prj\Mono2x\Gradle\unityLibrary\src\main\java\com\unity3d\player\UnityPlayerActivity.java使用或覆盖了已过时的 API。

注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。

注: 某些输入文件使用了未经检查或不安全的操作。

注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。2 个错误

FAILURE: Build failed with an exception.

* What went wrong:

Execution failed for task ':unityLibrary:compileReleaseJavaWithJavac'.> Compilation failed; see the compiler error output for details.

* Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

TIRAMISU 是 Android 13 的代号 提拉米苏,应该是本地的 SDK 版本较低,请升级到相应的最新版本即可解决此错误

# 参考命令(也可使用管理员身份运行 Unity,在安卓平台的 Target API Level 配置中选择 33 进行 Build 时,会自动提示需要升级 SDK,以下命令就提取自其错误提示)

# 进入 sdk 安装目录

cd "C:\Program Files\Unity\Hub\Editor\2022.3.8f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\cmdline-tools\6.0\bin"

# 执行升级指令(Android 13 对应 sdk 版本为 33

sdkmanager.bat "platforms;android-33"

参考:https://blog.csdn.net/linxinfa/article/details/118553713

https://blog.csdn.net/qq_38217990/article/details/129257106

  • 46
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!针对您的问题,这里提供一些相关的信息供您参考。 首先,Unity是一款跨平台的游戏开发引擎,可以支持在多个平台上进行游戏开发。而AndroidiOS是其中比较常见的移动平台。 在AndroidiOS平台上嵌入Unity开发示例,可以参考官方文档中的相关内容。具体步骤如下: 1. 创建Unity项目并设置相关参数,例如选择AndroidiOS平台,设置屏幕分辨率等。 2. 在Unity项目中添加所需的场景和游戏对象,并设置相应的脚本和材质等。 3. 将Unity项目导出为AndroidiOS平台所需的文件格式,例如APK或IPA文件。 4. 在AndroidiOS项目中嵌入Unity文件,并通过相关代码进行调用和交互。 需要注意的是,AndroidiOS平台上嵌入Unity的具体实现方式可能会有所不同,需要根据具体情况进行调整和修改。 另外,关于在Unity开发AndroidiOS应用的示例,也可以参考官方文档中的相关内容。具体步骤如下: 1. 创建Unity项目并设置相关参数,例如选择AndroidiOS平台,设置屏幕分辨率等。 2. 在Unity项目中添加所需的场景和游戏对象,并设置相应的脚本和材质等。 3. 使用Unity提供的AndroidiOS插件进行开发,例如调用相机或GPS等硬件功能,或者进行网络通信等。 4. 将Unity项目导出为AndroidiOS应用程序,并进行相关的测试和调试。 需要注意的是,开发AndroidiOS应用程序需要遵循相应的规范和标准,例如Android应用程序需要满足Google Play的要求,iOS应用程序需要通过苹果的审核。因此,在开发过程中需要谨慎处理相关问题。 希望以上信息对您有所帮助,如有任何疑问,请随时提出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值