Unity与Android——AS打aar包供Unity调用
AndroidStudio部分
1.新建Android工程,与Unity项目包名一致(com.xx.xxx)
2.在Unity安装路径Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes.jar,找到Classes.jar并拷贝到安卓工程libs文件夹下。
添加依赖:在bulid.gradle里,加一句implementation files(‘libs/classes.jar’)
旧版本AS为compile files.
3.在Activity里写自定义方法(Unity要调用的),比如出现一个Dialog
public String ShowDialog(final String _title, final String _content){ runOnUiThread(new Runnable() { @Override public void run() { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle(_title).setMessage(_content).setPositiveButton("Down", null); builder.show(); } }); return "Java return"; }
4.更改AndroidManifest.xml
加一行
5.(build.gradle里)apply plugin: ‘com.android.application’ 修改为 apply plugin: ‘com.android.library’
(build.gradle里)删除applicationId 那句
6.Build——BuildAPK
Build完成在app\build\outputs\aar路径下生成了app-debug.aar包
更改aar包后缀名为zip,打开包,删除libs文件夹下的classes.jar,删除res文件夹
Unity部分
1.写一个测试脚本挂到Camera上
public class CallMethod : MonoBehaviour{ public void MyShowDialog() { // Android的Java接口 AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic("currentActivity"); // 参数 string[] strs = new string[2]; strs[0] = "Jar4Android nbnb"; strs[1] = "Wow,Amazing!It's worked!"; // 调用方法 string ret = jo.Call("ShowDialog", strs); }}
2.在场景中制作一个Button,将Click事件绑定为CallMethod的MyShowDialog方法。
3.打包Apk,PackageName和AS项目一致,MiniSDK与AS一致,之后测试即可。
遇到的坑
1.打包一直报错aapt.exe package --auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S “res” -I”这样的
解决:删除aar包里的res文件夹
2.报错AndroidManifest.xml:3: error: Error: No resource found that matches the given name (at ‘icon’ with value’@mipmap/ic_launcher’).
AndroidManifest.xml:3: error: Error: No resource found that matches the given name (at ‘icon’ with value’@mipmap/ic_launcher_round’).
解决:在AndroidManifest.xml里删除报错里提到的资源相关几行。
更多相关文章
- Android中Button的使用方法
- 【Android 开发】:Android中EditText控件的几种使用方法
- android adt安装成功后 eclipse菜单栏没有相应的图标的解决方法
- 【Android 初学】5、控件--ImageView的使用方法
- 解决用Android Studio开发项目如何放置assets文件夹
- [置顶] 我的Android进阶之旅------>Ubuntu下不能识别Android设备
- Android-Jni线程(三)— JNI全局回调java方法
- Android和蓝牙GPS结合的方法