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

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 23:21   535   0

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略有差异,请灵活处理。
在这里插入图片描述
2.更改Gradle settings
(1) 对于Unity2017.2及以上版本,可以打开 Player Settings,如下勾选 Custom Gradle Template复选框。其它版本,需要复制 mainTemplate.gradle 文件(在Unity安装目录搜索mainTemplate )到 Assets/Plugins/Android/mainTemplate.gradle。
在这里插入图片描述
这样就可以自定义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。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp">
    <application
            android:name="android.support.multidex.MultiDexApplication" >
        ...
    </application>
</manifest>
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP