unity发布android教程 Unity Android交互之 调用AndroidStudio打包aar
大家好,我是云百科的客服小柏,我来为大家解答以上问题。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的结果,具体如下图
本文到此讲解完毕了,希望对大家有帮助。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
最近收到一位患者的留言,说自己这几天总感觉肛门有下坠胀感,特别难受,上网一查,好多信息都指向癌症,这可...浏览全文>>
-
腹痛、腹泻总反复!可能是小肠、大肠在抗议。基于症状特征区分小肠疾病与大肠疾病的具体差异分析:一、核心症状...浏览全文>>
-
近日,中国中医药信息学会肛肠分会·肿瘤分会·治未病分会·河北名医学会肛肠分会·盆底与便秘分会·河北省中...浏览全文>>
-
安徽蚌埠的长安启源E07作为一款备受关注的新能源车型,其价格和配置一直是消费者热议的话题。如果你正考虑入手...浏览全文>>
-
近年来,随着新能源汽车市场的快速发展,插电式混合动力车型逐渐成为消费者关注的焦点。生活家PHEV作为一款备...浏览全文>>
-
在2025款生活家PHEV车型正式上市之前,提前了解相关费用明细对于购车者来说至关重要。这款插电式混合动力车型...浏览全文>>
-
大众途昂作为一款中大型SUV,凭借其宽敞的空间和强劲的动力配置,在市场上一直拥有不错的口碑。对于计划购买20...浏览全文>>
-
阜阳地区的长安启源Q05 2025款车型凭借其时尚的外观设计和丰富的配置,吸引了众多消费者的关注。这款车型作为...浏览全文>>
-
阜阳揽巡作为一款备受关注的中型SUV,凭借其豪华的配置和超值的价格吸引了众多消费者的目光。这款车不仅在外观...浏览全文>>
-
淮南长安启源A07自上市以来便凭借其卓越的性能和亲民的价格赢得了众多消费者的青睐。作为2025款的新车型,它在...浏览全文>>