栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

[Unity][Android]安卓项目导出AAR文件Unity项目交互

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[Unity][Android]安卓项目导出AAR文件Unity项目交互

AndroidStudio 2020北极狐

Unity 2019.4.19f1c1

打开AS2020,新建 安卓 项目

选择 Phone and Tablet - Empty Activity

 

改名字

Name:Application_test

 Package Name:com.example.application_test

这里的Application_test与下文的testAndroid安卓项目名字对不上,以testAndroid为准

新建Android Library

在Project视图下

选中然后鼠标右键-New Model

如果不是Android Library而是 选择新建的Phone&Tablet,最后导出的是apk,而不是aar

导入classes.jar

C:Program FilesUnityHubEditor2019.4.19f1c1EditorDataPlaybackEnginesAndroidPlayerVariationsmonoReleaseClasses

classes.jar文件路径

Unity对应版本安装路径EditorDataPlaybackEnginesAndroidPlayerVariationsmonoReleaseClasses文件夹里的

classes.jar

复制classes.jar文件

在AndroidStudio 里找到该项目 ,对应的 applibs文件夹,选中该文件夹

 

 ctrl+v粘贴

OK

文件导入到 对应的libs下

 添加该classes.jar为Library

 

导入代码

这两个文件 在 参考资料 1 的项目ALLSRC.zip中

ALLSRC.zipDemoApplication.zip

ALLSRCDemoApplicationAndroidUnityDemoLibsrcmainjavacomnewgamestudiounitydemolib

文件夹路径中

AndroidUnityDemo.class
UnityPlayerActivity.class

UnityPlayerActivity类的文件路径。

C:Program FilesUnityHubEditor2019.4.19f1c1EditorDataPlaybackEnginesAndroidPlayerSourcecomunity3dplayer

UnityPlayerActivity.java

这2个文件复制粘贴到如下图所示的文件夹中

由于

MainActivity.class被我重命名为
MainActivity_test

 

MainActivity_test .java

package com.example.testlib;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.Toast;

import com.example.testlib.UnityPlayerActivity;

public class MainActivity_test extends UnityPlayerActivity {

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

        Toast.makeText(this, "MainActivity_test -> onCreate", Toast.LENGTH_SHORT).show();
    }
}

更改AndroidManifest.xml文件

默认是这样的

改为



    
        
            
                
                
            
            
        
    

 如果 安卓项目 的这个 Android Library和本文的不一样,需要注意一下这里

package="com.example.testlib"

android:name="com.example.testlib.MainActivity_test"

构建.aar文件

先点右边 的 同步按钮,再点 左边Build 按钮

选中UnityToAndroid-debug.aar

 

对安卓项目导出的.aar文件进行设置

 改为.zip文件

 


下图有1个错误 ,已经用红大红框和叉叉 标记出来

删除libs文件夹里的classes.jar文件即可

libs文件夹里面为空


解压AndroidManifest.xml,然后.zip文件改为.aar文件

把这两个文件.aar和.xml文件 复制粘贴 到新建项目 的 文件夹路径,如果没有,就新建文件夹

 

Assets/Plugins/Android

Unity中构建场景和脚本

场景新建2个UI

 新建空物体挂载脚本testBtn.cs

这里的testBtn.OnBtnClick

和UnityAndroidDemo1.OnClick一致

testBtn.cs和UnityAndroidDemo1.cs一致

UnityAndroidDemo1.cs挂载在Unity Hierarchy视图的 MainCamera物体上

来自参考资料1 

ALLSRC.zipUnityAAR.zip

ALLSRCUnityAARAssetsscripts

UnityAndroidDemo1.cs

逻辑图

Unity打包安卓问题 闪退 闪退原因1

unity支持安卓版本不对,相关资料2

闪退原因2

unity项目

AssetsPluginsAndroid

文件路径没有AndroidManifest.xml

报错Gradle build failed

classes.jar文件位置不对

CommandInvokationFailure: Gradle build failed. 

没有运行.aar文件

Unity工程项目中

AssetsPluginsAndroid

只有classes.jar和AndroidManifest.xml,没有.aar文件。

最好不要这样做,确保.aar文件设置正确。

相关资料:

1.[Unity][Android]2021AndroidStudio安卓相互调用(1) 2.[Unity][Android]打包安卓项目真机测试 3.[Unity][Android]安卓与Unity项目交互——传递参数

4.

参考资料:

1.

Unity2018、2019和安卓通信,基于AAR包优化 ALLSRC.zip

2.

3.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/424402.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号