Unity2019.4.4与AndroidStudio3.5.2交互

以Android原生震动为例 ---> 

Unity 与Android 交互需要两个文件 :

1、classer.jar

Unity2019.4.4与AndroidStudio3.5.2交互

2、UnityPlayerActivity.java

Unity2019.4.4与AndroidStudio3.5.2交互

二、打开AndroidStudio开始创建工程

1、Unity2019.4.4与AndroidStudio3.5.2交互

2、Unity2019.4.4与AndroidStudio3.5.2交互

3、引入jar包 以及 java文件

Unity2019.4.4与AndroidStudio3.5.2交互

Unity2019.4.4与AndroidStudio3.5.2交互

4.UnityPlayerActivity.java里引入两个包

import com.unity3d.player.IUnityPlayerLifecycleEvents;
import com.unity3d.player.UnityPlayer;

如果无法引入,说明jar包没有导入完成,即上上图的add to Library

Unity2019.4.4与AndroidStudio3.5.2交互

5、在MainActivity.java内书写震动代码 

Unity2019.4.4与AndroidStudio3.5.2交互

6、配置AndroidManifest.xml 文件

Unity2019.4.4与AndroidStudio3.5.2交互

7、gradle配置

Unity2019.4.4与AndroidStudio3.5.2交互

8、build出aar

Unity2019.4.4与AndroidStudio3.5.2交互

9、解压

Unity2019.4.4与AndroidStudio3.5.2交互

 

Unity2019.4.4与AndroidStudio3.5.2交互

10、导入Unity

Unity2019.4.4与AndroidStudio3.5.2交互

11、写个Button来触发调用Unity2019.4.4与AndroidStudio3.5.2交互

12、C# 代码 

Unity2019.4.4与AndroidStudio3.5.2交互

13、打包设置

Unity2019.4.4与AndroidStudio3.5.2交互

14、打包测试运行结果(弹窗震动均成功)

Unity2019.4.4与AndroidStudio3.5.2交互

15、关于另外两种打包方式,如果不加混淆,会导致找不到方法的错误,如下:

AndroidPlayer([email protected]:34999) AndroidJavaException: java.lang.NoSuchMethodError: no non-static method with name='CallShake' signature='([JI)V' in class Ljava.lang.Object;
java.lang.NoSuchMethodError: no non-static method with name='CallShake' signature='([JI)V' in class Ljava.lang.Object;

16、加混淆打包

Unity2019.4.4与AndroidStudio3.5.2交互

文件内容:           -keep class com.unity.unitycallandroid.**{*;}

防止这个jar包被混淆