unity2017 安卓打包manifest targetSdkVersion=22 but library uses target 26的解决方案

这几天用unity 2017 安卓打包时一直出现这提示。
Warning: [Main manifest has but library uses targetSdkVersion='26'


真是恼人啊,导致排期将至游戏包还未审核通过。还好,经过几天努力, 现在终于解决了。

原理其实是对targetSdkVersion和compileSdkVersion理解有误。关于这方面网上文章很多。

unity 的设置里默认targetSdkVersion = compileSdkVersion。当他俩不等的时候,这问题就出现了,可是往往我们的要求确实是不等。本人要上传的平台要求,targetSdkVersion不能超过23。这就是原因。


解决方案:根据unity 官网的说法可采取以下步骤:

第一:targetSdkVersion 设置成 automatic hightest 。这样的话,目前unity2017出包的结果是targetSdkVersion = compileSdkVersion=26

可确保编译通过。但是,不满足要让argetSdkVersion=22的要求,如果降低到26以下,则报如题之错,怎么办?且看第二步。

第二:按官网上的步骤设置gradle (这是链接 https://docs.unity3d.com/Manual/android-gradle-overview.html) 生成mainTemplate.gradle 

根据这段这段话:To use your own build.gradle file when building the APK from Unity, use the Custom Gradle Template checkbox under Player Settings. This will generate a default mainTemplate.gradle for you, which you can edit. This template contains several variables that will be filled in by the Unity build process, such as **TARGETSDKVERSION** – you would normally leave these alone.  


关键是这句:This will generate a default mainTemplate.gradle for you,which you can edit. 哈哈,可以编辑啊。。。。

那么把mainTemplate.gradle 中的targetSdkVersion = **TARGETSDKVERSION**对应的**TARGETSDKVERSION**改成你期望的值 比如22,23,25等等。我设的是22,(targetSdkVersion = 22)

随后build,再把apk包结果用android studio 的分析功能打开一看,androidmainfest文件里 targetSdkVersion=22,果然是期望值,这样该问题,彻底解决。

第三,好好看文档是必须滴。人家官网讲的很清楚。切记。。。



你可能感兴趣的:(unity)