unity当两个以上Android插件冲突,怎么配置manifest

一 问题

当unity导入两个以上package并且都有manifest配置时,unity不会自动合并而是替换。导致有的jar包不能用。

二 解决方法

手动合并两个或者多个manifest.

合并中需要了解的点(因为不了解Android开发所以有些不是很清楚,只是尝试下获得的结果,望指正)
1.xml
2.manifest内容以及合并哪些东西

manifest大致可以分为二层。
第一层manifest层包括application,use-feature,use-permission,use-sdk,meta-date,support-screens(meta-date只是一个键值对他可以在manifest下的任一层任意多个到时一个层级的粘到一起就行了)等子元素support-screens,application,use-sdk只能有一个其他可以有多个或者没有。当然可能还有其他的子元素但是不重要,合并就是把这一级的都复制粘贴放置到manifest下即可。另外比较重要的就是manifest的属性,其中package名字很重要。他是系统启用这个程序的唯一标识。你可以从manifest中定义package,也可以从playersetting里设置packagename。但是最后以playersetting里的为准。其他属性不重要可有可无。基本默认即可。所以合并时不用在意manifest的属性,甚至packagename。但是如果application下的activety有用到packagename就一定得注意了。后面再说packagename。

第二层 第一层的东西都可以放到manifest下合并就可以了(除了application,use-sdk,support-screens因为这两个所有的manifest文件都会有,而且不能有多个,所以只能拆开这两个再合并成一个了。use-sdk定义的是可以使用的sdk的最高版本和最低版本,扩展一下就行了把多个manifest文件中的use-sdk最低的设为最低最高的设为最高。support-screens顾名思义支持屏幕横屏竖屏放大凭等把要支持的都放在这个下面就行了)application 下包含activety,service,reciever(当然还有无处不在的meta-date)等这些都可以包含多个(但是只能有一个主activity,也就是由filter过滤器的那个activety)所以把application下的这些元素都粘到一起就行了。当然activety下有很多元素但是不用管是干嘛的把这个activety整个元素粘过去就行。

第三 和并中属性问题因为其他都是粘贴就行的所以属性只需注意manifest的属性和application的属性,一般对应缺少粘贴重复去掉就行,具体要了解这些属性是什么或者其他东西是什么打开下面的连接有详细介绍(毕竟不是Android开发)
最后需要注意的是activety的属性 Android:name 这个是启动这个activity的路径,有的activety路径是继承的manifest的属性package。一般都是完整的路径,如果有继承的,把那个package字符串粘过来完整这个路径。其实如果下层的activety不用到这个package也就是说是完整的package就完全没用。如果你不把activety路径完整,那你就得用原来的包名,并且playersetting也要设置的和package一样才行。


unity当两个以上Android插件冲突,怎么配置manifest_第1张图片

你可能感兴趣的:(unity当两个以上Android插件冲突,怎么配置manifest)