Android工程接入UnityLibrary工程
目录结构
Unity工程指UnityLibrary目录下文件;
安卓工程指app目录下文件;
整体指App目录下不包括app和UnityLibrary;
1.Unity打包时勾选导出安卓工程;
拷贝gradle.properties中:unityStreamingAssets=xxx 到整体工程的gradle.properties中
拷贝local.properites中ndk、jdk路径到整体工程的local.properites
2.AndroidStudio创建Empty Activity工程;
整体工程的setting.gradle中添加:
include ':unityLibrary'
project(':unityLibrary').projectDir=new File('.\\unityLibrary')
安卓工程app目录下build.gradle中添加:
dependencies{
implementation project(':unityLibrary')
implementation fileTree(dir:project(':unityLibrary').getProjectDir().toString() + ('\\libs'), include: ['*.jar'])
}
3.修改安卓工程和Unity工程Build.Gradle
targetsdk,minsdk,compilesdk,buildToolsVersion都要一致
也可在File/ProjectStructure/Modules中切换Version
4.在安卓工程MainActivity中添加切换Activity代码
在OnCreate中添加:
Intent intent = new Intent(MainActivity.this, UnityPlayerActivity.class);
startActivity(intent);
这样一开始就会打开Unity界面,也可以在原生工程添加按钮跳转;
报错记录
1.Gradle Version和 Gradle Plugin Version出错
Gradle Plugin Version中包含了多个Gradle Version;根据提示选择对应版本的GradleVersion;如果没有对应版本,就下载新的Gradle Plugin Version;
File/ProjectStructure/Project中切换;
2.sdk、ndk、jdk版本出错
建议使用Unity本体目录下的sdk和jdk,同样ProjectStructure界面选择;
之前local.properites也配置过;
3.跳转Unity工程闪退
安卓工程的main/res/values/string.xml中添加
<string name="game_view_content_description">Game view</string>
4.编译过程中找不到libillcpp.so,libmain.so等问题
重新拷贝Unity导出工程的jiniLibs文件夹到UnityLibrary对应目录工,删除buid,重新打包;
5.打包编译il2cpp报错
如果做了代码热更有可能是没有正确生成依赖,找不到对应类型;
我使用HybridCLR热更,可以重新生成依赖,再次导出安卓工程;
6.两个app图标
注释UnityLibray目录中AndroidManifest.xml以下配置;
<!-- <intent-filter>-->
<!-- <action android:name="android.intent.action.MAIN" />-->
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<!-- </intent-filter>-->
Life is too short for so much sorrow.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!