android studio导入开源项目问题记录

android关于project和module的关系这里就不说了。要知道as把一个project看成一个工作空间,新建一个project就等于建立了新的工作空间,转而将module当成普通的我们所理解的“project”。这是与eclipse中的project对比的结果。今天在导入第三方开源项目的时候遇到了问题,也是经过查找看很多资料才导入成功,在这个做出分享,希望看到这篇博文的朋友们遇到类似问题可以马上解决问题。


导入第三方项目答题过程其实挺简单的(本次开源项目是自己编写的,所以项目在本地,对于as可以导入非本地开源项目的方法不在这篇文章的范围),主要步骤是:

1、下载第三方开源项目到本地

2、as——file——new——import module将开源项目添加到工作空间中来。此时会发现Gradle Scripts中多了一个buile.gradle文件是导入项目的配置文件。打开这个文件确保第一行applyplugin的值是'com.android.library'

3、找到原app项目的buile.gradle文件,该文件的apply plugin值是'com.android.application':apply plugin'com.android.application'在下面的

dependencies中添加compile project(':刚才导入的项目名字')

4、重新编译项目就可以运行了,也就是导入成功了,但是有时会出现一些问题导致主项目R文件缺失的问题。R文件存放在项目下的buile/generated/source/r目录下。普通情况可以通过rebuild项目重新生成R文件,但是有时重建项目也不能顺利生成R文件,问题经常出来导入的项目文件是有错误的,或者有些东西跟主项目冲突了。

如果是导入的项目出问题了,一般是res下的资源有问题,就要先去处理掉问题,确保问题已经解决。


下面是一些常用问题的清单:

问题一:

Error:(26, 9) Attribute application@icon value=(@drawable/logo) from AndroidManifest.xml:26:9

Error:(28, 9) Attribute application@theme value=(@style/ThemeActionBar) from AndroidManifest.xml:28:9

is also present at XXXX-trunk:XXXXLib:unspecified:15:9 value=(@style/AppTheme)

Suggestion: add 'tools:replace="android:theme"' to <application> element at AndroidManifest.xml:24:5 to override

Error:Execution failed for task ':XXXX:processDebugManifest'.

> Manifest merger failed with multiple errors, see logs

原因:AS的Gradle插件默认会启用Manifest Merger Tool,若Library项目中也定义了与主项目相同的属性(例如默认生成的android:icon和android:theme),则此时会合并失败,并报上面的错误。

解决方法有以下2种:

方法1: 在Manifest.xml的application标签下(主项目)添加tools:replace="android:icon, android:theme"(多个属性用,隔开,并且记住在manifest根标签上加入xmlns:tools="http://schemas.android.com/tools",否则会找不到namespace哦)

方法2: 在build.gradle根标签上加上useOldManifestMerger true (懒人方法)

问题二:

Library Project里面的 BuildConfig.DEBUG永远都是false 。这是Android Studio的一个已知问题,某Google的攻城狮说,Library projects目前只会生成release的包。

Issue 52962: https://code.google.com/p/android/issues/detail?id=52962

解决方法: (某Google的攻城狮推荐的方法)

Workaround: instaed of BuildConfig.DEBUG create another boolean variable at lib-project's e.g. BuildConfig.RELEASE and link it with application's buildType. 

问题三:

每次保存的时候,每行多余的空格和TAB会被自动删除(例如结尾、空行的多余空格或TAB)

特别是每次准备提交SVN,Review代码时候你就蛋疼了,显示一堆不相关的更改,看的眼花。

解决方法:

Settings->IDE Settings->Editor->Other->Strip trailing spaces on Save->None

问题四:

编译的时候,报:Failure [INSTALL_FAILED_OLDER_SDK]。一般是系统自动帮你设置了compileSdkVersion 

解决方法:

修改build.gradle下的compileSdkVersion 'android-L'为compileSdkVersion 19(或者你本机已有的SDK即可)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值