Android Stuido导出AAR 给Unity3D调用注意事项
来源:互联网 发布:论文数据造假的多吗 编辑:程序博客网 时间:2024/05/09 18:26
1. 导出 AAR过程需要注意,依赖的文件并没有打进去,所以要收到拷入到 Unity项目中,如下图中的 support包,是我项目中要用到的:
2.删除aar包中重复的 libs下的 jar文件和 jni下的 .so文件,否则调用的时候会报错。
3. Manifest文件也要拷到 Unity项目中的 Plugin/Android下,因为会有一些 权限的声明。 例如:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
4. Unity中运行的时候,一定注意 这个Bundle Identifer 包名的指定,要和你 AAR中 Manifest一致,否则运行中 启动某个 Activity,就
会报找不到Activity,因为你是在Manifest中对其进行的声明。
5. C# 调用 Android代码的实例 ,包括 不带参数和 带参数的几种情况都有了:
using (AndroidJavaClass pluginClass = new AndroidJavaClass("com.xxx.xxx.Manager")) { AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject activity = jc.GetStatic<AndroidJavaObject>("currentActivity"); Debug.Log("-----------com.xxx.androidplugin.Recorde------" + pluginClass); if (pluginClass != null) { instance = pluginClass.CallStatic<AndroidJavaObject>("getInstance"); new AndroidJavaObject("com/xxx/xxx/Manager").Call("stop"); int[] mObject = new int[2]; mObject[0] = 1111; mObject[1] = 2134; instance.Call("speak", "test ", 21313); instance.Call("sing", mObject); instance.Call("stop"); instance.Call("takePhotoByCamera", activity); } }
6. 当android中方法有返回值的时候,以及参数,类型一定要和C#中的一致,类型一定要和C#中的一致,类型一定要和C#中的一致 long Long 类似的区别
遇到个坑,浪费半天找不到原因,发现 android中参数写成了Long,而C#中是 Call<long>,一直报错 NoSuchMethodError: no non-static method with name。。。。
正确的如下
public class KeyIdManager { private static final String TAG = "KeyIdManager"; private Long mId = -1L; private static KeyIdManager mKeyIdManager; public static KeyIdManager getInstance() { if (mKeyIdManager == null) { mKeyIdManager = new KeyIdManager(); } return mKeyIdManager; } public void setId(long id) { mId = id; Log.d(TAG, "setId: mId == " + mId); } public long getKeyId() { return mId; }}
AndroidJavaObject instance = new AndroidJavaClass("com.xxx.util.KeyIdManager").CallStatic<AndroidJavaObject>("getInstance"); instance.Call("setId", 100L); Debug.Log("--------getKeyId------" + instance.Call<long>("getKeyId"));
参考:
AS与Unity3D之间打包的各种坑及解决方案
Android Studio 2.1 和 Unity3D 5.3.4 交互
Android Studio 2.1 和 Unity3D 5.3.4 交互(二)
阅读全文
0 0
- Android Stuido导出AAR 给Unity3D调用注意事项
- android studio导出aar,提供SDK给第三方调用
- Android Stuido 导出 APK
- android stuido的aar文件怎么使用
- Android 打包aar给unity3d使用 项目心得
- Android stuido 导入项目注意事项
- Android Studio 导出aar包供Unity调用
- eclipse迁移项目到android stuido注意事项
- Android Library项目导出aar
- android studio 如何调用aar
- Android Stuido Ndk-Jni 开发(四):Jni打包及引用aar
- Android Stuido Ndk-Jni 开发(四)Jni打包及引用aar
- android studio 导出jar 和 aar
- Xamarin工程中调用Android AAR
- 3DS导出到Unity3D的注意事项
- 3DS导出到Unity3D的注意事项
- android导出jar注意事项
- Unity3D调aar包
- Mariadb数据库
- 通知栏Notification使用自定义视图方法(显示一个进度条ProgressBar)
- vtk入门,一切从一个程序开始
- 以双斜杠//开头的URL – 依赖协议的URL
- 红茶一杯话Binder(ServiceManager篇)
- Android Stuido导出AAR 给Unity3D调用注意事项
- java多线程技能(一)
- 定位子串(二)
- tf.Variable函数的用法
- Linux终端设置成256色模式
- proteus入门学习(by 朱玲)
- P1208 犯罪团伙(超大数据)
- leetcode 576(week 12)
- ssm-ssm整合(springmvc+mybatis)