Unity2019.4—AnroidStudio—AndroidX接入SDK详细版

自Unity2019.2.x之后,由于Unity的classes.jar库作了更改,导致AS(AndroidStudio简称)不能顺利结合Unity接入SDK或者安卓的功能了,经过一番查找翻阅后,在这里总结了一些经验和自己的方式,已经过实际项目测试!

开发工具版本介绍:
Unity:2019.4.14
AndroidStudio:4.2.2

1.先创建一个空白AS工程,设置好包名和最低API等级:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.点击Finish等待工程创建成功后,得到如下展开方式的目录结构,然后我们需要删除一些没用的文件和内容:
在这里插入图片描述
3.检查gradle.properties文件中的使用AndroidX设置以及自动转换第三方库以使用AndroidX的设置,没有就给加上:
在这里插入图片描述

4.根据Unity版本对应的Gradle版本和gradle插件版本来设置AS中相应地方的版本:

在这里插入图片描述
在这里插入图片描述
从上图中可以知道Unity2019.4.14的gradle版本是5.1.1,gradle插件版本是3.4.0,我们对照Android官方的表查看,也是一一对应的安卓Gradle官网
在这里插入图片描述
5.获取了Unity的gradle相关版本当然就是去AS中设置了:
在这里插入图片描述
在这里插入图片描述
6.更改完毕并同步后,AS项目中添加Unity的classes.jar库和UnityPlayerActvity.java脚本,以前是只需要添加jar库就好了的,目前Unity新的处理方式classes.jar包中没有包含UnityPlayerActvity.java这个脚本了:
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210716173004204.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hteDUxNjY=,size_16,color_FFFFFF,t_70
在这里插入图片描述
在这里插入图片描述
7.设置build.gradle(:app)文件中的编译命令、各种版本设置、导入的库设置等,直接贴上代码,里面有注释:

//application是以APK的形式打包,最终可以在安卓上世界运行
//plugin以插件的形式进行编译打包,最终为aar格式,与jar包(老式)一样都可以嵌入到Unity中
//apply plugin: 'com.android.application'
//apply plugin: 'com.android.library'
//上面是老版本的打包命令,现在只能用下面的形式,不然打包报错
//plugins {
//    id 'com.android.application'
//}
plugins {
    id 'com.android.library'
}

android {
    compileSdkVersion 30

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        ndk {
            // 设置支持的SO库架构
            abiFilters'armeabi','armeabi-v7a','x86_64','arm64-v8a','x86'
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    sourceSets {
        main {
            res.srcDirs = ['src/main/res', 'src/main/res/xml']
        }
    }

    //用来解决as工程的包名和Unity包名相同的冲突报错问题,不生成BuildConfig,Unity打包的时候自己也会生成
    afterEvaluate {
        generateReleaseBuildConfig.enabled = false
        generateDebugBuildConfig.enabled = false
    }
}

dependencies {
    //限定libs文件夹下的jar包,仅仅可以在内部访问,无法在外部其他的module调用
    implementation fileTree(dir: "libs", include: ["*.jar"])

    //Unity相关库导入
    implementation files('libs\\classes.jar')

    //系统相关
    implementation "androidx.core:core:1.6.0"
}

下面dependencies中的一些导入说明:
在这里插入图片描述
还有一个build.gradle(项目名称)的文件里面的设置也贴出来吧:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven {url 'https://maven.google.com/'}
        maven {url 'https://dl.bintray.com/jetbrains/anko'}
    }
    dependencies {
        classpath "com.android.tools.build:gradle:3.4.0"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        jcenter() // Warning: this repository is going to shut down soon
        // 添加下面的内容,添加依赖项
        flatDir {
            dirs 'libs'
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

8.代码部分的编写和更改啥的:
在这里插入图片描述
在这里插入图片描述
9.由功能需要,配置AndroidManifest.xml,以及添加一些xml文件和内容,这些xml到时候是需要复制到Unity里面的,后续也会说到:
在这里插入图片描述
10.AS这边啥都搞定好了,然后点击Build->Make Project就能生成初步的包了,以前是使用aar,现在我发现aar里面会包含一些无用资源,对aar里面的代码classes.jar再进行删除内容很麻烦,做一就改用jar了,而且这个jar包只包含代码部分,也方便删除不要的代码:
在这里插入图片描述
11.现在AS这边都处理完了,要去Unity那边了,首先我们将打包出来的classes.jar和一些xml文件复制到Unity的Plugins/Adnroid/下:
在这里插入图片描述

在这里插入图片描述

12.该对classes.jar中的多余脚本进行删除了,之前也说过,Unity自己这边也有,删除的代码就是之前从Unity的安装目录下复制过去的,不删除就会报重复或者覆盖之类的错:
在这里插入图片描述
13.补充一下AndroidManifest.xml中关于Unity的配置:
在这里插入图片描述
14.很重要的一步,之前说过了,需要下载安卓的核心包,放到Android目录下,不然到时候报错找不到安卓相关的API和类了,我们需要准备两个,一个给AndroidX系统及以上的手机使用,一个给老版本系统的手机使用:
在这里插入图片描述
下载这些库需要翻墙的哦,这里直接贴上下载官网地址https://mvnrepository.com/,方便将来需要更新库好找,以及下载步骤:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
还需要下载一个支持老版本的库,同样在搜索框中输入“legacy-support-v4”:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
哇!!!终于写完了,恭喜看到的同学,希望你也学会了(Unity和安卓交互部分的我就不写了,和以前一样,网上也有很多教程)!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值