AndroidStudio打包aar文件

unity实际项目中,unity会调用android里的原生代码,Unity能够调用.jar和.aar。项目中使用的是调用.aar文件。

一 在androidStudio上创建一个新的android工程。

选择相应的androidSDK创建一个新的android工程。

二 添加Unity的class.jar

  1. 把Unity安装路径下的Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes\classes.jar文件复制粘贴到android工程中的libs文件夹下。
  2. 在androidStudio中右击工程目录,点击Open Module Settings,添加classes.jar依赖
    AndroidStudio打包aar文件

三 添加unity调用的android代码

在MainActivity中修改添加代码

public class MainActivity extends UnityPlayerActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
    public void test(String str)
    {
        Log.i("Unity", "----------------");
    }
}

四 修改android工程中的build.gradle文件

  1. apply plugin: ‘com.android.application’ 修改为 apply plugin: ‘com.android.library’
  2. 删除 applicationId “com.cn.Test”

五 修改android工程中的AndroidManifest.xml文件

  1. 因为.aar文件将不带自定义的样式,最终打包会出现样式相关的报错。
    删掉下面这行
	android:theme="@style/AppTheme"

同时删掉res\values\styles.xml文件

  1. 需要在主activity中添加添加下面一句
    AndroidStudio打包aar文件

不然在编译apk会报下面的错误

Unable to find unity activity in manifest. You need to make sure orientation attribute is set to fullSensor manually.
  1. 可删掉android工程中的res文件下的mipmap-mdpi、mipmap-xdpi、mipmap-xxdpi、mipmap-xxxdpi文件夹。

六 大功告成

  1. 点击Build apk,生成aar文件
  2. 用Bandizip打开生成的.aar文件,删掉不libs文件夹下的classes.jar文件,不然在unity编译apk的时候,会因为有重复的classes.jar文件导致编译失败。