IT圈老男孩1 发表于 2022-1-8 10:30

unity问题总结

unity版本2018.4.18。后续版本可能不同
UR:unity安装根目录\Editor\Data\PlaybackEngines\AndroidPlayer\Tools
PR:项目根目录
整体结构


[*]gradle版本指定问题
参考
版本对应关系
实际上真正用的目录是UR\gradle\lib中的版本
只要将这个lib替换为指定的版本就行
[*]其他参数问题,主要是针对gradle.properties文件,比如支持AndroidX,
参考
在项目的Asset/Plugins/Editor下新建一个C#文件,命名为SupportAndroidXGradlePropertiesBuildProcessor.cs
using System.IO;using UnityEditor.Android;using UnityEngine;#if UNITY_ANDROIDpublic class SupportAndroidXGradlePropertiesBuildProcessor : IPostGenerateGradleAndroidProject{    public int callbackOrder    {      // 同种插件的优先级      get { return 999; }    }    public void OnPostGenerateGradleAndroidProject(string path)    {      Debug.Log("Bulid path : " + path);      string gradlePropertiesFile = path + "/gradle.properties";      if (File.Exists(gradlePropertiesFile))      {            File.Delete(gradlePropertiesFile);      }      StreamWriter writer = File.CreateText(gradlePropertiesFile);      writer.WriteLine("org.gradle.jvmargs=Xmx4096M");      writer.WriteLine("android.useAndroidX=true");      writer.WriteLine("android.enableJetifier=true");      writer.Flush();      writer.Close();    }}#endif构建

通过 .UR\GradleTemplates中的几个模板是整体的根模板,可以改这里来更改所有的项目。PR\Assets\Plugins\Android\mainTemplate.gradle的修改来实现基本的依赖的调整
其他


[*]google登录的google-services.json配置
可以在mainTemplate.gradle中直接添加任务。比如
task copyJsonFile {    copy {      delete("google-services.json")      from('E:/workdata/unity/GameHoursDemo/Assets/Plugins/Android/')      into('./')      include("google-services.json")    }}
页: [1]
查看完整版本: unity问题总结