Unity使用Android Stdio接入SDK制作AAR包

最近需要在Unity2021版本中接入SDK,发现和直接接入SDK有些区别,这里把接入的流程记录一下。

Unity在最新的版本中把UnityPlayActivity.java,从Class.jar中移除,需要在Unity的工程内找到这个文件,并把其加入到Android Stadio内,才能使用。

新建Android Stdio 工程,包名可以随便起

在工程中 New Module

①选择Android Library

②包名要和Unity工程里面相同

③设置SDK最小版本,要和Unity工程SDK版本相同

新建一个Java脚本 MainActivity.java启动时的入口

导入Unity中的class.jar包

路径:UnityEditorDataPlaybackEnginesAndroidPlayerVariationsmonoReleaseClasses 导入到libs文件下  右键libs文件夹下.jar文件,Add As Libray… 

MainActivity需要继承UnityPlayActivity

在Unity新的版本里面Class.jar没有这个类,需要自行找到后加入进去

路径:Unity自定义安装路径EditorDataPlaybackEnginesAndroidPlayerSourcecomunity3dplayer

新建文件夹存放UnityPlayerActivity.java脚本

 

 

 

修改后的AndroidManifest.xml

也要放在Unity工程中,可以把Android Stdio工程内的AndroidManifest.xml直接拖入Unity工程中

 

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.qqlogin.androidtest">
 
    <application
        android:allowBackup="true"
        android:supportsRtl="true"
        >
        <activity android:name="com.qqlogin.androidtest.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data
                android:name="unityplayer.UnityActivity"
                android:value="true" />
        </activity>
    </application>
 
</manifest>

build.gradle依赖项,不修改build.gradle不会生成aar 生成的是apk 

修改依赖项  否则AndroidStudio打包时会报错 

删除多余不用文件 打包arr

 

 这个主要是一些Android的界面设置,在目前的项目用没有使用,如果不删除,会同时打到aar包内,造成安装包增大

生成arr包

 处理aar包 导入Unity中

1.删除libs文件下的classes.jar,是libs文件下 不是 AndroidStudio生成的classes.jar

 2.在压缩包中打开AndroidStudio生成的classes.jar,删除UnityplayerActivity.class

不删除unity打包会失败

注意事项:

1、删除时可以把aar包改成zip,在进行解压,删除里面文件,对于UnityplayerActivity.class在class.jar包内,也是使用同样的方法。

2、删除完之后,再去制作zip包,在打包时,可能多包含一层文件,这里会造成打包失败,找不到对应的资源

错误的zip包

 正确的zip包

可以全选,然后再去制作zip包,之后修改后缀.aar,在放在Unity工程中