您现在的位置是:首页 > 数码 > 正文
unity发布android教程 Unity Android交互之 调用AndroidStudio打包aar
发布时间:2022-05-19 08:40:13编辑:来源:
大家好,我是云百科的客服小柏,我来为大家解答以上问题。unity发布android教程,Unity,Android交互之,调用AndroidStudio打包aar很多人还不知道,现在让我们一起来看看吧!
解答:
1、 打开安卓工作室,命名工程名称,具体如下图
2、 从一致安装路径寻找到classes.jar作为库引入AndroidStudio,(windows电脑的路径:ProgramFiles\unity2017_4_6\Editor\Data\playbackengines\Androidplayer\Variations\mono\Release\Classes路径根据一致版本对应查找),拷贝classes.jar,粘贴到安卓开发环境工程的激光诱导击穿光谱仪中,并且添加为库.具体如下图
3、 找到安卓开发环境工程下的主要活动脚本,注释掉v7引用,统一目前暂时不支持,主要活动继承UnityPlayerActivity,并且注释掉,安卓的屏幕显示,具体如下图
4、 并且在主要活动脚本上添加一致可调用的测试函数,包括带参数的,静态和非静态的方法,具体如下图
5、 主要活动脚本的具体内容如下:
6、 包com。举例。testandroidaarforunity
7、 //导入安卓。支持。V7。app。appcompactivity
8、 导入安卓。OS。捆绑;
9、 导入安卓。小部件。敬酒;
10、 导入com。unity3d。玩家。unityplayeractivity
11、 公共类主要活动扩展UnityPlayerActivity{
12、 @覆盖
13、 受保护的voidonCreate(Bundlesavedinstancestate){
14、 超级棒。oncreate(savedInstanceState);
15、 //setContentView(r.layout。活动_主);
16、 }
17、 publicvoidShowToast(最终字符串消息){
18、 runOnUiThread(newRunnable(){
19、 @覆盖
20、 公共无效运行(){
21、 吐司。maketext(getApplicationContext()、msg、Toast.LENGTH_SHORT).show();
22、 }
23、 });
24、 }
25、 公共静态字符串ReturnStaticString(){
26、 '返回'调用返回值静态方法;
27、 }
28、 公共字符串ReturnString(){
29、 '返回'调用返回值非静态方法;
30、 }
31、 }
32、 找到工程中的AndroidManifest.xml,添加元数据android:name='unityplayer.unityactivity'Android:value='true'/,并且去掉应用中的一些属性,仅留下Android:label='@string/app_name'即可,具体如下图
33、 AndroidManifest.xml的具体的内容如下:
34、 ?可扩展标记语言版本='1.0'编码='utf-8'?
35、 清单xmlns:Android='http://模式。安卓。'package='com。举例。'testandroidaarforunity'
36、 应用
37、 Android:label='@string/app_name'
38、 activityandroid:name='.主要活动'
39、 意图过滤器
40、 actionAndroid:name='Android。意图。行动。主'/
41、 类别Android:name='Android。意图。类别。“发射器”
42、</intent-filter>
43、<meta-dataandroid:name="unityplayer.UnityActivity"
44、android:value="true"/>
45、</activity>
46、</application>
47、</manifest>
48、在AndroidStudio中选择File—ProjectStructures...,然后把导入的classes.jar设置为只编译不打包,因为Unity中自带,打包进去会造成重复错误,具体如下图
49、在AndroidStudio的工程下,找到build.gradle,把applyplugin:'com.android.application'修改为applyplugin:'com.android.library',注释掉applicationId"com.example.testandroidaarforunity",以及相关的而一些Android测试相关的内容,因为作为Unity库使用,暂时不要androidTest相关的内容,具体如下图
50、build.gradle的具体内容如下:
51、//applyplugin:'com.android.application'
52、applyplugin:'com.android.library'
53、android{
54、compileSdkVersion28
55、defaultConfig{
56、//applicationId"com.example.testandroidaarforunity"
57、minSdkVersion15
58、targetSdkVersion28
59、versionCode1
60、versionName"1.0"
61、//testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"
62、}
63、buildTypes{
64、release{
65、minifyEnabledfalse
66、proguardFilesgetDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'
67、}
68、}
69、}
70、dependencies{
71、/*implementationfileTree(include:['*.jar'],dir:'libs')
72、implementation'com.android.support:appcompat-v7:28.0.0'
73、implementation'com.android.support.constraint:constraint-layout:1.1.3'
74、testImplementation'junit:junit:4.12'
75、androidTestImplementation'com.android.support.test:runner:1.0.2'
76、androidTestImplementation'com.android.support.test.espresso:espresso-core:3.0.2'*/
77、compileOnlyfiles('libs/classes.jar')
78、}
79、如图,在AndroidStudio的工程找到工程中的一些不需要的xml文件,删掉即可,不然可能会在Unity中报错,具体如下图
80、把value/styles.xml的一些Android的样式注释掉,因为Unity用不到,还会报错,具体如下图
81、准备工程做完之后,就可以编译打包了,打包成功即可在输出文件中,找到aar,具体如下图
82、如果要编译出发布的release版本,可以如图双击或者右键bundleReleaseAar,即可编译出,具体如下图
83、选中要导入Unity的aar包,右键在文件夹中打开,具体如下图
84、然后,选中对应aar,右键选择打开方式,使用解压应用打开,然后把AndroidManifest.xml拉出来解压,便于和aar一起导入Unity,具体如下图
85、打开Unity,在工程中新建文件夹Plugins/Android,把AndroidManifest.xml和aar一起导入Unity的Plugins/Android文件夹下,具体如下图
86、在unity中的场景中添加两个的文本Text,用于显示调用Android的aar的函数接口的结果,具体如下图
87、在工程中添加一个脚本CallAndroid,用来调用aar的函数,然后双击打开进行编辑代码,具体如下图
88、CallAndroid脚本的具体如代码和代码说明,即创建AndroidJavaObject,在Start函数中调用相关接口,具体如下图
89、CallAndroid脚本的具体内容如下:
90、usingUnityEngine;
91、usingUnityEngine.UI;
92、publicclassCallAndroid:MonoBehaviour{
93、//显示调用函数结果的Text
94、publicTextshowStaticString,showString;
95、AndroidJavaObjectjo;//设置androidjava实体
96、publicAndroidJavaObjectJo
97、{
98、get
99、{//jo为空,就新建一个对应的androidjava实体
100、if(jo==null){
101、AndroidJavaClassjc=newAndroidJavaClass("com.unity3d.player.UnityPlayer");
102、jo=jc.GetStatic<AndroidJavaObject>("currentActivity");
103、}
104、returnjo;
105、}
106、}
107、//Usethisforinitialization
108、voidStart(){
109、//使用androidjava实体Jo调用测试函数
110、Jo.Call("ShowToast",newobject[]{"调用androidaar的ShowToast函数"});
111、showStaticString.text=jo.CallStatic<string>("ReturnStaticString");
112、showString.text=jo.Call<string>("ReturnString");
113、 }
114、}
115、脚本编译正确后,把脚本挂载到Canvas并把两个Text对应赋值到脚本,具体如下图
116、然后编译场景,打包到Android手机上运行,即可看到,Unity调用Androidaar的结果,具体如下图
本文到此讲解完毕了,希望对大家有帮助。
标签:
猜你喜欢
最新文章
- DeepSeek公告:线上服务遭大规模恶意攻击,暂限非+86手机号注册
- IGN揭秘《刺客信条:影》新实机演示:主角形象深入人心!
- 焕新登场:全新起亚K4紧凑型车图解赏析
- 重庆:2025年将持续推进163项城中村改造项目
- 蔚来乐道春节期间暂停车机升级,2月6日恢复推送服务
- 超有牌面!国产游戏《明末:渊虚之羽》登上英国《EDGE》杂志封面,漫画风女侠惊艳亮相
- 币界网晚间行情速递:BTC比特币报价$103,391.48,日内微跌1.04%
- 暗区突围:全面转载新手必备攻略
- 未来人生:个人满级天赋展示与深度评价(五)
- 探索功夫英雄的奇妙世界:玩法特色与剧情概览
- 最后一波福利!速来领取《黑神话:悟空》限定红包封面!
- 《暗黑4》Steam史无前例大促:标准版仅售191.4元,速来抢购!
- 广东:2027年目标全面构建绿色低碳循环经济体系
- 金价飙升,直逼840元大关!黄金店铺春节延期休假,蛇金饰品与足金手机贴受热捧!
- 《宝可梦卡牌P》新扩展包时空激战1月30日震撼发布,帝牙卢卡荣耀参战
- 截至今晨7点,全国172个公路路段受雨雪寒潮侵袭影响
- 币界网晚间行情速递:DOT波卡币攀升至6.446美元/枚,日内涨幅达2.01%
- 《龙腾世纪4》销量惨淡致EA股价暴跌21.25%!市场反应强烈
- 比亚迪海豹汽车OTA升级:全新引入城市领航功能等重磅更新
- 特朗普透露或于30日天内决断TikTok命运
- 10亿基金助力,中部城市赣州抢占人形机器人产业先机
- 《蛋仔派对》服务器崩溃引发玩家不满,官方深夜致歉并修复问题
- Stellantis重启美国贝尔维迪尔工厂,千余员工将重返岗位
- 一鸣食品全资子公司增资扩建:1.32亿打造4500头规模繁育基地