最近要合并两个app里面的功能,然后我就想把其中一个作为module引入另一个项目里
module是一个eclipse项目导到AS(AndroidStudio)里的,因为eclipse对项目检测的确不如AS(个人认为)
, 因为module项目是很久之前的大哥们用eclipse开发的。
问题一:有些资源文件的控件id重复,可能这种id没有被使用到吧,没有检查出来,所以导到AS后,AS比较
严格吧,id重复运行会报错,但有时候不报具体哪里出错,只能一个个的点资源文件,有问题就改,没办法。
问题二:eclipse对某些文件的位置是不做具体区分的,但AS区分了,列如attrs属性文件,AS明确区分要放在
values文件下的,但在eclipse可以放在anim文件下不报错(举例),所以导致AS编译错误。
问题三:图片问题,也是最常见的问题
1.eclipse里设置的点9图片导到AS后,AS会清空之前的点9设置(可能是识别不出之前的设置吧),
严格的AS就是报错,一张张得改是不可能的,所以只能在gradle里设置 :(抑制图片检测)
android {//在对应的gradle设置即可 compileSdkVersion 23 buildToolsVersion "23.0.2" aaptOptions.cruncherEnabled = false //////这句和下面那句 aaptOptions.useNewCruncher = false ////// defaultConfig { minSdkVersion 9 targetSdkVersion 21 } }
2.还有一种情况就是本来是 jpg的图片,只是简单的改了后缀名为PNG就放到项目里,这样是不行是,会报找不到该PNG图片,
如果你点开这图片看右上角就会发现,其实图片还是原来的格式,所以要通过严格的图片格式转换才有效或者增加抑制图片检测。
问题四:引入module的问题,module原来是一个主app,所以以module的形式被关联时,它的gradle是不会改变的,只能手动改变,
把顶部的 apply plugin: 'com.android.application' 改为 apply plugin:'com.android.library' 它已经是一个lib了,还有就是
applicationId "xxxxxxxx" 这个去掉,一个项目只能有一个applicationId且只能在主module(一般默认有个app的module,它就是主module)
的gradle里设置。
问题五:引用的module和主module的关联包冲突问题,如果两个都引用了相同的libs,那就把主module的lib包删除(删谁要看关联情况)。
问题六: 引用的module和主module的权限冲突问题,如果主manifest和关联的module的manifest有相同的权限,就把引用的module中的权限删了。
问题七:其他的一些icon、theme冲突问题,以主manifest为主,点击下方的merged manifest,右边就会出现Manifest Sources,根据提示操作即可
一般如果是以上冲突,他会在主manifest的application 中添加 tools:replace="android:name,android:theme" 类似这个配置。
最后操作完,就clear一下吧,小编就只想到就这么多了,哈哈,都是比较直接的表达。。。。