首页 > 其他分享 >Android工程接入UnityLibrary工程

Android工程接入UnityLibrary工程

时间:2023-03-09 10:24:43浏览次数:33  
标签:工程 unityLibrary 安卓 UnityLibrary Gradle Unity Version Android

目录结构

image-20230308174307367

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也配置过;

image-20230308180236176

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>-->

标签:工程,unityLibrary,安卓,UnityLibrary,Gradle,Unity,Version,Android
From: https://www.cnblogs.com/littleperilla/p/17197370.html

相关文章

  • 2023年度Android面试复习
    Android系统启动流程?当按电源键触发开机,首先会从ROM中预定义的地方加载引导程序BootLoader到RAM中,并执行BootLoader程序启动LinuxKernel;然后启动用户级别的第一个......
  • 2023年3月8日(软件工程日报)
    在Android体系中,CompoundButton类是抽象的,复合按钮,因为是抽象类,所以它不能直接使用。实际开发中用的是CompoundButton的几个派生类,主要有复选框CheckBox、单选按钮RadioBut......
  • Qt for Android开发环境这样设置简单正确高效
    1.按照如下网址安装设置JDK、SDK、NDK版本并创建环境变量:JAVA_HOME、ANDROID_SDK_ROOT、ANDROID_NDK_ROOT。https://doc.qt.io/qt-6/android-getting-started.html2.如本......
  • 2023.3.7Android开发
    今天学习了Android开发的图像显示imageview中的图片属性xml中的缩放类型,fitxy拉伸图片使其正好填满试图(图片可被拉伸变形)firststrat保持宽高比例,拉伸图片使其位于试图的......
  • Android 渐变色背景
    一、效果:   二、实现:1、在res/drawable中创建一个名称user_background_gradient.xml<?xmlversion="1.0"encoding="utf-8"?><shapexmlns:android="http://sch......
  • 软件工程日报十二——安卓studio数据的删除与修改
    本篇博客来介绍安卓studio的数据删除与修改源码如下:Mainactivitypackagecom.example.sqlitetest;importandroidx.annotation.Nullable;importandroidx.appcompat......
  • 【GiraKoo】Android Studio控制台乱码
    【GiraKoo】AndroidStudio控制台乱码启动AndroidStudio进行编译时,可能会遇到控制台出现异常的乱码。本文介绍该情况的解决方案。����:δ������쳣����Exception;���������в���������Ա��׳� mlocatio......
  • 关于Android事件分发的设计模式理解与思考
    关于Android事件分发的设计模式理解与思考在现在Android智能机上,触碰几乎成为了唯一的交互方式。那么触碰消息在Android系统当中怎么进行分发的呢?在事件分发处理上,Androi......
  • Android常见界面布局
    View视图所有的UI元素都是通过View与ViewGroup构建的,对于一个Android应用的用户界面来说,ViewGroup作为容器盛装界面中的控件,它可以包含普通的View控件,也可以包含ViewGroup......
  • 2023.3.8——软件工程日报
    所花时间(包括上课):8h代码量(行):0行博客量(篇):1篇今天,上午学习英语和数据库,下午学习python和数学建模。我了解到的知识点:1.数学建模的一些知识;2.连接sqlite的数据库的插件,......