# 3. Android平台导入说明
# (1) mainTemplate.gradle生成和说明
生成打包时必须的mainTemplate.gradle文件,生成路径如下图所示:
(由于不同版本的Unity3d工具生成的gradle文件会不一样,需要开发者删除后重新生成自身Unity3d工具下的gradle文件,SDK中的仅供参考)


注意
针对生成后的mainTemplate.gradle需增加以下配置,见下方代码中1、2所示:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
//不同的Unity3d工具生成的版本号有可能会不一样
classpath 'com.android.tools.build:gradle:3.2.0'
**BUILD_SCRIPT_DEPS**}
}
....
//1、仅在Unity 2018版本及以下有效,2019版请查看后续章节说明
([rootProject] + (rootProject.subprojects as List)).each {
ext {
it.setProperty("android.useAndroidX", true)
it.setProperty("android.enableJetifier", true)
}
}
apply plugin: 'com.android.application'
**APPLY_PLUGINS**
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
**DEPS**}
android {
compileSdkVersion **APIVERSION**
buildToolsVersion '**BUILDTOOLS**'
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
minSdkVersion **MINSDKVERSION**
targetSdkVersion **TARGETSDKVERSION**
applicationId '**APPLICATIONID**'
ndk {
abiFilters **ABIFILTERS**
}
versionCode **VERSIONCODE**
versionName '**VERSIONNAME**'
multiDexEnabled true //2、需要额外补充设置,是为了当代码行数超过64k的时候设置的
}
.....
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# (2) 新版变更说明
新版SDK调整了广告平台SDK的依赖引入方式,请根据以下步骤进行操作:
确保已经生成
mainTemplate.gradle文件勾选
Patch mainTemplate.gradle选项(Unity 菜单栏:Assets→External Dependency Manager→Android Resolver→Settings)

开始解析依赖(Unity 菜单栏:
Assets→External Dependency Manager→Android Resolver→Resolve),解析成功后将在mainTemplate.gradle文件中引入依赖

# (3) 使用Unity 2019版的工程配置
在项目的Assets/Plugins/Editor新增文件SupportAndroidXGradlePropertiesBuildProcessor.cs,内容如下:
using System.IO;
using UnityEditor.Android;
using UnityEngine;
public class SupportAndroidXGradlePropertiesBuildProcessor : IPostGenerateGradleAndroidProject
{
public int callbackOrder
{
// 同种插件的优先级
get { return 999; }
}
public void OnPostGenerateGradleAndroidProject(string path)
{
Debug.Log("Bulid path : " + path);
string gradlePropertiesFile = path + "/../gradle.properties"; //2019版及其以上使用的路径
if (File.Exists(gradlePropertiesFile))
{
File.Delete(gradlePropertiesFile);
}
StreamWriter writer = File.CreateText(gradlePropertiesFile);
writer.WriteLine("org.gradle.jvmargs=-Xmx4096M");
writer.WriteLine("android.useAndroidX=true");
writer.WriteLine("android.enableJetifier=true");
writer.Flush();
writer.Close();
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# (4) 配置AndroidManifest.xml
在Assets/Plugins/Android目录下创建文件命名为AndroidManifest.xml:内容如下:**:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.superapp.filemanager"
android:versionCode="2"
android:versionName="1.1" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="28"
android:usesCleartextTraffic="true" />
<!--其中usesCleartextTraffic的配置必须设置,主要作用是让游戏里可以使用http请求(必须使用)-->
<application android:usesCleartextTraffic="true">
<activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name">
<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>
<!--这个设置主要是为了适配9.0以上的机器(必须使用)-->
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
</application>
<!--必须要有的权限-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# (5) 与其他第三方Android SDK合并
(1)必须把第三方的jar包和aar包放在目录:/Assets/Plugins/Android/libs下
(2)如果第三方sdk有资源,则把资源的文件夹放在目录:/Assets/Plugins/Android/下
(3)如果第三方存在AndroidManifest文件,则需要和/Assets/Plugins/Android/AndroidManifest.xml文件内容合并
# (6) 如何选择Android的部分AAR或者Jar不进行打包
(1)选择可展示Unity3d中的展示文件的目录

(2)全选SDK文件夹,在隔壁一列全选所有的aar包和jar包,然后在最右侧会出现平台的选择

# (7) 把Android平台的打包选择去掉,然后选择Apply,就完成剔除打包的操作

← 2. 导入SDK说明 4. iOS平台导入 →