在Unity 2019+使用arm64 + IL2CPP导出的原生安卓项目会包括两个gradle项目
- launcher
- unityLibrary
Unity官方声明这样是为了把Unity的项目完全剥离出来,方便之后二次处理
Unity Forum Unity Android Combine
整合步骤
基于网络上的多方的整合信息和个人的处理,优化了一套最快捷方便的处理方式
导出Unity项目
创建AS项目
在项目级别的settings.gradle中添加引入项目声明
include ':unityLibrary' project(':unityLibrary').projectDir=new File('..\\..\\SplitCanvas\\GoogleAS\\unityLibrary')//里面写的是你unitylibrary的路径
在项目级别的build.gradle中添加
allprojects { repositories { google() jcenter() maven {url 'https://developer.huawei.com/repo/'} // add code below flatDir { dirs "${project(':unityLibrary').projectDir}/libs" } } }
在应用级别的build.gradle中添加
dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation <span class="token string">'com.huawei.hms:iap:4.0.4.301'</span> implementation <span class="token string">'com.huawei.hms:base:4.0.4.301'</span> implementation <span class="token string">'com.huawei.hms:hwid:4.0.4.300'</span> implementation <span class="token string">'com.huawei.hms:game:4.0.3.301'</span> // add code below implementation project<span class="token punctuation">(</span><span class="token string">':unityLibrary'</span><span class="token punctuation">)</span> implementation fileTree<span class="token punctuation">(</span>dir: project<span class="token punctuation">(</span><span class="token string">':unityLibrary'</span><span class="token punctuation">)</span>.getProjectDir<span class="token punctuation">(</span><span class="token punctuation">)</span>.toString<span class="token punctuation">(</span><span class="token punctuation">)</span> + <span class="token punctuation">(</span><span class="token string">'\\libs'</span><span class="token punctuation">)</span>, include: <span class="token punctuation">[</span><span class="token string">'*.jar'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>//lib路径
}
然后sync即可把unity导出的library当作一个module导入到项目中
整合unityLibrary到项目
将launcher分支项目中的复制到创建的项目中
屏蔽Unity默认的launcher
同步这些数据到应用级别的build.gradle
制作启动Activity,将Activity注册到复制过来的模板manifest文件中