1. 导出 AAR过程需要注意,依赖的文件并没有打进去,所以要收到拷入到 Unity项目中,如下图中的 support包,是我项目中要用到的:
2.删除aar包中重复的 libs下的 jar文件和 jni下的 .so文件,否则调用的时候会报错。
3. Manifest文件也要拷到 Unity项目中的 Plugin/Android下,因为会有一些 权限的声明。 例如:
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("currentActivity");
Debug.Log("-----------com.xxx.androidplugin.Recorde------" + pluginClass);
if (pluginClass != null)
{
instance = pluginClass.CallStatic("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);
}
}
参考: