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

目录

1. 目的

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

2.参考

2.1 Unity与AndroidStudio简单交互

2.2 Unity+AndroidStudio:学习:二:(第2次操作:成功)AndroidStudio如何产生.arr文件+交互

3.操作:一:失败:

3.1 版本

3.1 新建工程

3.1.1. 设置

3.1 工程界面

3.1 在该项目上新建一个模块(项目完全生成完才会出现新建模块的选项)

3.1.1 包名需要和Unity的包名一致,

3.1 给新建的模块添加一个Empty Activity

3.1.1 Android结构下:给新建的模块添加一个Empty Activity

3.1.1 Project结构下:给新建的模块添加一个Empty Activity

3.1        Empty Activity 设置

3.1添加unity的classes.jar,直接复制粘贴在libs下

3.1.1 设置classes.jar作为library:

3.1 修改Activity:

3.1.1 报错:无法找到UnityPlayerActivity:已解决

3.1 修改配置文件AndroidManifest.xml

3.1 Build ,生成arr文件

3.1 处理.arr文件,得到我们需要的文件


1. 目的

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

2.参考

2.1 Unity与AndroidStudio简单交互

https://blog.csdn.net/u014589770/article/details/105247486

  1. 亲测:失败
  2. 可能是因为我的是AS4.2.2导致,很多不同,放弃

2.2 Unity+AndroidStudio:学习:二:(第2次操作:成功)AndroidStudio如何产生.arr文件+交互

https://mp.csdn.net/mp_blog/creation/editor/118406173

  1. 亲测:我自己写的,完成
  2. AS的arr的包名等,对Unity里面没有影响

3.操作:一:失败:

3.1 版本

  1. windows10  64
  2. AS 4.2.2 版本

3.1 新建工程

3.1.1. 设置

com.example.myapplication

  1. 此处的包名随便设置,因为后面会新建一个模块,
  2. 所以个人觉得:因为你需要导出.arr给Unity,所以所有的包名都和Unity保持一致
  3. 最低的SDK版本可以后期修改,从而和Unity保持一致。

3.1 工程界面

下图是刚刚创建,很多还在loading,会导入东西,并且等待很久,

需要等待比较久的时间,几分钟,然后界面如下

3.1 在该项目上新建一个模块(项目完全生成完才会出现新建模块的选项)

3.1.1 包名需要和Unity的包名一致,

注意:包名一定要与unity的包名相同,生成后更改配置文件中的包名无效,若不相同,配置文件错误,会造成apk运行闪退。

Mini SDK的话应该与Unity保持一致,不一致没试过。

因为在这里我的API最低的没有设置和Unity一致,所以需要修改为一致的,下面就是修改的方法。

3.1 给新建的模块添加一个Empty Activity

3.1.1 Android结构下:给新建的模块添加一个Empty Activity

3.1.1 Project结构下:给新建的模块添加一个Empty Activity

3.1        Empty Activity 设置

注意:

  1. 第一个:不勾,由于在unity中运行,所以不需要Android布局视图。勾上的话,会在res->layout下生 成一个.xml文件,删除掉也行。
  2. 第二个:暂且不勾

3.1添加unity的classes.jar,直接复制粘贴在libs下

注意:
unity中classes.jar的路径有两种:

  1. C:\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes下;
  2. C:\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Classes下。
  3. unity 2019.3后的版本classes.jar不包含UnityPlayerActivity类了,位置在Editor\Data\PlaybackEngines\AndroidPlayer\Source\com\unity3d\player。
    另外:2019.3前版本,无法继承应该是因为没有将classes.jar添加到dependencies,查看build.gradle,dependencies 下加 implementation fileTree(include: ['*.jar'], dir: 'libs')


 

准备删除的:因为导入了unity 2019.4.9f1的class.jar文件,里面没有UnityPlayerActivity类

unity 2019.3后的版本classes.jar不包含UnityPlayerActivity类了,位置在Editor\Data\PlaybackEngines\AndroidPlayer\Source\com\unity3d\player。
另外:2019.3前版本,无法继承应该是因为没有将classes.jar添加到dependencies,查看build.gradle,dependencies 下加 implementation fileTree(include: ['*.jar'], dir: 'libs')

Unity的classes.jar 位置

Unity中我们使用的是C#脚本,最终运行在Android上是由于Mono进行转换的,所以我们选用的jar文件是第一个路径下的。如果使用的是il2cpp,就要选择第二个路径下的jar文件

3.1.1 设置classes.jar作为library:

 

准备删除的:因为导入了unity 2019.4.9f1的class.jar文件,里面没有UnityPlayerActivity类

3.1 修改Activity:

由于上面添加了unity的classes.jar作为库,所以可以继承UnityPlayerActivity

package com.ZHHD.BlueToothWatch;

//import androidx.appcompat.app.AppCompatActivity; //用不上了,注释掉

import android.os.Bundle;

import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;

public class MainActivity extends UnityPlayerActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    //功能:向Unity3d发送消息
    public String ASFUNC_ForTest()
    {
        UnityPlayer.UnitySendMessage("testCube","UnityFun","android msg");
        return "Call ASFUNC_ForTest!";
    }

}

3.1.1 报错:无法找到UnityPlayerActivity:已解决

问题:

参考:

1.Unity 3d UnityPlayerActivity这个类继承不了

https://tieba.baidu.com/p/6733090597

  1. good:解决了问题
  2. unity 2019.3后的版本classes.jar不包含UnityPlayerActivity类了,位置在Editor\Data\PlaybackEngines\AndroidPlayer\Source\com\unity3d\player。
    另外:2019.3前版本,无法继承应该是因为没有将classes.jar添加到dependencies,查看build.gradle,dependencies 下加 implementation fileTree(include: ['*.jar'], dir: 'libs')

3.1 修改配置文件AndroidManifest.xml

现在mylibrary的AndroidManifest.xml

由于要修改的新模块的配置文件过于简单,直接从App模块中拷贝过来

粘贴, 包名修改一下

标红的错误直接删除

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ZHHD.BlueToothWatch">

    <application
        android:allowBackup="true"
        android:supportsRtl="true"
        >
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

3.1 Build ,生成arr文件

3.1 处理.arr文件,得到我们需要的文件

因为.aar文件当前压缩工具不支持打开,所以改一下后缀为.rar

解压后的文件夹如此

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值