Unity Android(四)使用AndroidStudio2020打包aar,提供Unity调用

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目录下)

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安卓调用讯飞语音合成并制作成aarUnity使用,主要需要以下步骤: 1. 首先,需要下载并导入讯飞语音合成SDK到Android Studio项目中。可以在讯飞官方网站上下载SDK并按照官方文档的指引将其导入到项目中。 2. 在Android Studio中,创建一个Java类,作为与Unity交互的入口类。该类将用于将Unity传递的指令传递给讯飞语音合成SDK,并将结果返回给Unity。 3. 在入口类中,使用讯飞语音合成SDK提供的API,初始化语音合成引擎,并设置相关参数,例如合成音调、语速、音量等。 4. 创建一个Unity的C#脚本,用于调用安卓原生代码。在该脚本中,可以使用UnityAndroidJavaClass和AndroidJavaObject类,调用刚刚创建的入口类以及其相应的方法。 5. 在Unity中,将C#脚本附加到一个GameObject上,并在合适的时间点调用相应的方法,以触发安卓代码的执行。例如,在用户点击一个按钮时,触发语音合成。 6. 在Unity中,可以将安卓生成的aar文件放置在Assets/Plugins/Android目录下,这样Unity就能够自动识别并加载该aar文件。 7. 最后,执行Unity项目,验证安卓调用讯飞语音合成的功能。用户点击按钮后,Unity调用对应的C#方法,然后该方法将调用对应的安卓入口类,进而启动讯飞语音合成,最终实现语音合成的功能。 通过以上步骤,我们可以将讯飞语音合成封装为一个aar文件,供Unity在安卓平台上调用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值