Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互

Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互

1. 目的

1.1 想知道:AndroidStudio如何产生.arr文件+交互

2.参考

2.2Unity与Android交互方案优化版续:使用自定义Activity

  1. 待检测

3.操作:一:待检测

3.1 版本

  1. windows10 64
  2. AS 4.2.2 版本
  3. 小米6手机

3.1新建AS工程

www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互
www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互
XZYApp
www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互

3.1 新建文件夹:tempLibs

  1. Android开发时,依赖的库文件都是放到libs目录中的,但是该目录中的内容默认是打包时会一起编译进包的,所以我们自己建立一个tempLibs(名字你随便取)目录,来放这种不参与编译的jar
www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互
www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互
www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互

3.1 拷贝unity的class.jar到AS

  1. C:\MyXZY\Unity\2019.4.9f1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes
  2. 我使用的Unity2019.4.9f1
www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互

拷贝到此文件夹

www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互
www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互

3.1修改build.gradle文件

 implementation fileTree(include: ['*.jar'], dir: 'libs')
        implementation 'com.android.support:appcompat-v7:26.1.0'
        compileOnly files('tempLibs/classes.jar') //使用compileOnly指定该jar只是开发时引用,编译时不导出
www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互

3.1 写一个自定义的Application

www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互
CustomApplication
www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互
www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互
package com.example.xzyapp;
import android.app.Application;
import android.util.Log;

public class CustomApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Log.i("unity_with_android_plus", "老子就是自定义的Application");
    }
}

3.1 写一个自定义的Activity

www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互
CustomActivity
www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互
www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互

3.1 修改CustomActivity

3.1.1 会发现报错

//package com.example.xzyapp;
//
//import androidx.appcompat.app.AppCompatActivity;
//
//import android.os.Bundle;
//
//public class CustomActivity extends AppCompatActivity {
//
//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//    }
//}

package com.example.xzyapp;
import android.os.Bundle;
import android.util.Log;
import com.unity3d.player.UnityPlayerActivity;
public class CustomActivity extends UnityPlayerActivity
{
    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        Log.i("unity_with_android_plus", "老子就是自定义的Activity");
    }
}
www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互
报错原因:因为导入了unity 2019.4.9f1的class.jar文件,里面没有UnityPlayerActivity类

3.1.1 方法一:修改jar作为库:失败

www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互
www.zeeklog.com  - Unity+AndroidStudio:学习:二:(第3次操作:失败)AndroidStudio如何产生.arr文件+交互