PS:换新版本的AS后,打包aar后,到Unity里编译APK报了很多错/捂脸,特此总结
工具:Unity2018.4.36 AS2020.3
AS打包AAR以及常见报错
ps:假如你已下载AS2020.3.1并且已经配置好了sdk以及jdk
1.新建Project
File-New Project-Empty Activity
2.以默认app模块作为Module,编译aar需要该模块
在该Module内我们需要修改以下几处
1. build.gradle
修改后如下
plugins {
// id 'com.android.application'
id 'com.android.library'
}
android {
compileSdk 30
defaultConfig {
// applicationId "com.example.myapplication"
minSdk 21
targetSdk 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
这里'com.android.library' 才能编译aar,需要是library库
2.AndroidMainfest.xml文件
特别说明:以下修改xml去掉了MainActivity模块以及MainActivity.java文件。只编译第三方工具aar包。如需要MainActivity可参考我的下一篇文章 这里
3. 修改res目录
这里把两个themes.xml 的<style>都注释掉,快捷键CTRL+/
layout目录下的activity_main.xml删除掉
说明:注释掉这些会避免Unity打包APK时候报的找不到xx主题的报错,如AppCombat Darklight
4.编译AAR
选中app模块--Build--Make Project
可以看到aar已经打出来了
以上编译aar的好处是只需要把aar导入Unity即可,不需要再导入xml文件(其实aar包中是包含xml文件的)。通常我们可以在aar包写诸如第三方的工具方法
Unity打包APK
把aar到Unity/Plugins/Android目录下即可
1.修改Unity的包名,上文有提到(经测试也可不修改)
2.修改Unity最小minimum API >=21
3.使用Internal或Gradle编译APK
如果你编译出来APK并且没有报错,恭喜!!!!
调用AAR里的java方法
细心的朋友可能发现了我已经把MainActivity删除了,新增了myUtils.java脚本
package com.example.myapplication;
public class myUtils {
public static String getMsg()
{
return "200";
}
}
Unity里调用如下
//包名+类名
AndroidJavaClass AJC = new AndroidJavaClass("com.example.myapplication.myUtils");
string s2=AJC.CallStatic<string>("getMsg");
aar工程分享:
链接:https://pan.baidu.com/s/1p9efpnqKmYEcyEETQZtHpg 1234
参考文献:
1.https://blog.csdn.net/qq_21267961/article/details/111548739 Unity AAR打包(其他jar包引入lib目录后使用compileOnly后需要把jar文件拷贝到Unity-Plugins-Android目录下)