? ? ? ?unity打包遇到的报错,部分在androidstudio里同样方式解决 首先说一个还没搞明白的问题。项目之前打包一直使用的Internal模式,一直没有问题,在没动过所有与sdk有关的文件(包括架包,清单文件等)的情况下,突然打包输出了问题1的错误。意思是清单文件配置了这个占位符,需要在gradle里提供占位符对应的值。比较奇怪的是,之前一直用的Interneal模式打包,没有使用自定义gradle文件,理论上是必不可能打出来包的,但是之前确确实实没问题,实在不清楚为什么会突然这样,猜想唯一有可能的是android sdk版本更新导致的?或者有遇到过知道什么原因的还望不吝赐教。当然就算不知道怎么原因也得去解决~
1.Attribute data@scheme at AndroidManifest-main.xml requires a placeholder substitution but no value for <APPLOG_SCHEME> is provided.
unity中选择gradle模式打包,勾选playerseting-publishing setting-Custom Gradle -Template.勾选之后会生成MainTemplate文件,在android{ defaultConfig { ****** } }中添加 manifestPlaceholders.put("key","value"),具体key和value根据报错提示以及清单文件的配置补充。注意这个文件一定要在自己确保什么作用的前提下修改,不要乱删减,因为问题2就是删了内容导致的。
2.error: resource style/AppTheme (aka {packagename}:style/AppTheme) not found.
检查themes文件这个是存在的,排查了很久没找到问题,结果到最后发现是删掉了MainTemplate文件里dependencies{}里面的unity特殊字符串“**DEPS**”,官方的解释是“项目依赖项(即,使用的库)的列表。”加上就行,这个问题纯属自己太弱智,不懂什么意思就给删掉了。
3.打包运行之后提示函数找不到,具体报错没有保存就不贴了,大概意思是找不到需要调用的函数。需要排查下是不是代码被混淆了,解包只有反编译源代码,如果函数名是a,b,c这种即被混淆了。此时可以在配置混淆的文件中加入不要被混淆的类,甚至整个包名。-keep class packagename.* 。或者在gradle文件中配置android {buildTypes{debug{minifyEnabled false}release{minifyEnabled false}} } ?
|