使用Unity2017或以上版本解决65535问题,设置targetVersion26规避8.0系统bug等问题

Unity 2017及以上版本支持,不用导出到Android Studio工程,直接在Unity IDE中完成分包设置。

1.开启Gradle build system
在Unity Editor, 打开Build Settings 窗口 ( File > Build Settings…)
在平台列表中, 选择 Android
设置 Build System 到 Gradle (new)
不同Unity版本,Build Settings略有差异,请灵活处理。
使用Unity2017或以上版本解决65535问题,设置targetVersion26规避8.0系统bug等问题_第1张图片
2.更改Gradle settings
(1) 对于Unity2017.2及以上版本,可以打开 Player Settings,如下勾选 Custom Gradle Template复选框。其它版本,需要复制 mainTemplate.gradle 文件(在Unity安装目录搜索mainTemplate )到 Assets/Plugins/Android/mainTemplate.gradle。
使用Unity2017或以上版本解决65535问题,设置targetVersion26规避8.0系统bug等问题_第2张图片
这样就可以自定义Gradle了。

下面介绍两个问题的解决方案:

1.设置targetVersion26:
在unity2017里是不能直接指定targetVersion26的,这样的话需要修改mainTemplate.gradle:

android {
***********************
	defaultConfig {
		targetSdkVersion 26
		applicationId '**APPLICATIONID**'
	}

	lintOptions {
		abortOnError false
	}
****************

将targetSdkVersion 更改为26即可进行打包

2.解决65535问题:
(1) 在defaultConfig中添加multiDexEnabled true

defaultConfig {
    targetSdkVersion **TARGETSDKVERSION**
    applicationId '**APPLICATIONID**'
    multiDexEnabled true
}

(2) 在dependencies中添加com.android.support:multidex:1.0.1
一般当前应用的Android API最低版本都在20以下,因此需要在dependencies中添加com.android.support:multidex:1.0.1。

dependencies {
    compile 'com.android.support:multidex:1.0.1'
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

(3) 删除minifyEnabled与useProguard参数
如果出现shrinking/minification is not supported with Multidex错误,请删除useProguard参数,甚至进一步删除minifyEnabled参数。 如下所示:

buildTypes {
    debug {
        minifyEnabled **MINIFY_DEBUG**
        //useProguard **PROGUARD_DEBUG**
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'**USER_PROGUARD**
        jniDebuggable true
    }
    release {
        minifyEnabled **MINIFY_RELEASE**
        //useProguard **PROGUARD_RELEASE**
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'**USER_PROGUARD**
        **SIGNCONFIG**
    }
}

(4).初始化Multidex
如果 Assets/Plugins/Android/不存在AndroidManifest.xml,请从Unity的安装目录复制默认的AndroidManifest.xml到此目录。如果AndroidManifest.xml的application标签中没有为android:name设置MultiDexApplication或MultiDexApplication的子类,请添加android.support.multidex.MultiDexApplication。



    
        ...
    

你可能感兴趣的:(Unity3D)