Android导出aar插件供Unity使用以及通过android scheme启动unityApp

Posted Zero_LJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android导出aar插件供Unity使用以及通过android scheme启动unityApp相关的知识,希望对你有一定的参考价值。

unity是5.5,android studio是2.3.3 一:在android Studio导出aar插件到unity       说明一下aar与jar插件的区别:jar是只包含配置文件和class文件,而aar插件是包括资源的,两者都能用压缩软件打开。       首先打开as建立新的工程(一直下一步下一步就行了) 打开之后如果你的也有我这种错误报错(没有的可以省略这一步,不知道是不是我的as有问题,家里的没毛病,公司的就这毛病QAQ) 然后打开你的Gradle文件(有两个,别打开错了) 原来是这样的 然后修改下成下面这样,在点击右上角的try again ok ,开始我们的插件制作  1:首先在你的unity安装目录下面找到calsses.jar包       (Unity5.5\\Unity\\Editor\\Data\\PlaybackEngines\\AndroidPlayer\\Variations\\mono\\Release\\Classes)          然后将这个包拷贝到AS的libs文件夹下面(可以ctrl+c/v) 2:点击这个jar包右键点击Add as library,然后稍等片刻 3:接着我们重新修改一下gradle      把: apply  plugin 'com.android.application' 修改成 apply  plugin 'com.android.library'
  删除applicationId "com.lj.test10"这一行
 (熟悉的android开发者应该知道这个是把当前的项目变成了library项目,不熟悉的就跟着我弄啦)
   最后的效果
4:开始编写程序(我在这编写的是一个简单的打电话程序)     (1)打开mainActivity.class,让他继承UnityplayerActivity 具体如下 然后配置你的AndroidManifast.xml,添加打电话的权限
<uses-permission android:name="android.permission.CALL_PHONE"/>
5:然后build,然后之后找到你build之后的aar插件  
  ,点击show in explorer,然后找到outputs文件夹下面的aar文件夹下面的aar插件 6:导入到unity中 然后在你的unity安装路径下面(Unity5.5\\Unity\\Editor\\Data\\PlaybackEngines\\AndroidPlayer\\Apk)找到你的Androidmanifest.xm文件也导入都按untiy中 修改一下: ps:这里我之前出现好几个问题,如果不导入这个最后打包会出现两个图标,或者说直接就不会实现打电话这个功能(最后弄到的这个方案) 7:开始编写c#代码 我的场景是这样,然后给button添加事件 8:OK开始打包(别忘了包名设置) (1)打包途中出现了这样的错误 莫急,这个是因为你开始做插件的时候导入了classec.jar,然后unity打包的时候又会添加一次,所以我们要做的就是把aar插件中的classes.jar删除 用压缩软件打开你的aar插件,然后找到libs文件夹,删除里面的classes.jar (2)回到unity继续build 然后又提莫的出现问题了(我开始也是一脸蒙蔽) 这个问题嘛....还是用压缩软件打开你的aar插件,然后删除res这个文件夹 好了,再build应该就没问题了
  9:最后打开使用。 二:利用scheme 启动unity app  定义:android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。 1:首先我新建立了一个android工程,页面代码如下     弄完之后build到你的手机上面。 2:在你的刚才制作的aar插件的AndroidManifest.xml配置文件中添加如下代码
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.DEFAULT" />
    <data
        android:host="test.app"
        android:scheme="myscheme" />
</intent-filter>
ps:data里面的scheme字符以及host都可以自己随便定义 然后修改你的mainActivity.class文件 然后再把这个aar插件导出,删除libs里面的classes.jar包和res文件夹(好吧,有点繁琐,有大神知道更简单的可以指导下),添加到Unity中 ps:这里会问,为什么要回到as工程里面配置清单,不可以在unity的AndroidManifest.xml直接配置吗?答案是可以的,但是最后这样导致了两个情况           (1):是我在插件中写了一个Toast打招呼,单独点开app是可以打招呼的,然后利用scheme跳转打开居然这个打招呼就没了           (2):是我在利用scheme打开的时候如果我想在untiy中获得这个scheme协议是获取不到的(这种情况大多用在scheme中含有参数的时我们             需要获取) 3:导入到Unity中 ,编写C#代码 4:build 到手机,效果如下 延伸一点:如果知道怎么做之后我们就可以实现android app打开unity build 的app,也可以untiy app打开android 的app.... 相关链接: Android Studio如何导出可供Unity使用的aar插件详解 - MingLin - 博客园 Android业务组件化之URL Scheme使用 - 总李写代码 - 博客园 http://www.jianshu.com/p/45af72036e58 http://www.jianshu.com/p/c06063a403c6 有什么问题可以问我,或者我有什么问题请指导下,三克油!!! 附上demo地址: http://download.csdn.net/download/k20132014/10044614 网盘:https://pan.baidu.com/s/1skD7xxV

以上是关于Android导出aar插件供Unity使用以及通过android scheme启动unityApp的主要内容,如果未能解决你的问题,请参考以下文章

Android导出aar插件供Unity使用以及通过android scheme启动unityApp

Android Studio如何导出可供Unity使用的aar插件详解 转

Unity3D 导入aar注意事项

unity打aar包工具

Unity与安卓交互 | Unity2019.3版本之后,在Android Studio中写代码导出aar包与Unity中使用交互的方法

Unity与安卓交互 | Unity2019.3版本之后,在Android Studio中写代码导出aar包与Unity中使用交互的方法