当前位置:首页 > android > 正文

android开源项目OSCHINA学习心得

看很多书,不如先阅读下开源项目的代码,可以有很多值得借鉴的地方;之前就在阅读OSCHINA的开源代码,很值得借鉴;
尽管前几天导入项目总是失败,碰到很多坑,不过总算是解决了;
总体来说,有几个大致的步骤;
(1)安装android studio将环境先搭建起来;
(2)安装不同版本的SDK,比如OSCHINA就需要SDK-API 15+;统一安装下,由于公司有VPN,安装各种环境都是太爽了;
(3)android studio是统一使用gradle进行项目的管理处理,就是统一的一种标示语言来说明项目情况;很多时间浪费在这个地方了,总体而言,需要设置gradle scripts中的内容;比如:
gradle
主要感觉是分为2个scripts文件,一个是用来设置app的一些信息,比如build.gradle(app)描述的是android{},dependencies{}的信息;另外一个build.gradle(oschina)主要是buildscript{}的信息;
关键是app的build信息要配置正确才可以;需要正确的gradle版本;
(4)就是导入外部的项目了;导入会碰到很多坑,比如:

OSChina Android APP 导入到Android Studio中不能运行,发现一小插曲。

主要实现了开源中国社区 OSC Android 客户端项目源码通过Gradle方式编译 在 Android Studio运行并模拟。

出现这个报错:

Error:duplicate files during packaging of APK /Users/lixiphp/AndroidStudioProjects/oschina-android/app/build/outputs/apk/app-debug-unaligned.apk

Error:Execution failed for task ‘:app:packageDebug’.
> Duplicate files copied in APK META-INF/NOTICE.txt
File 1: /Users/lixiphp/AndroidStudioProjects/oschina-android/app/libs/commons-httpclient-3.1.jar
File 2: /Users/lixiphp/AndroidStudioProjects/oschina-android/app/libs/commons-httpclient-3.1.jar

这个APP运行的环境是在SDK API 15,如果你改为19或者更高是会报错的。

JDK=1.6

target=android-15

解决方法

在gradle配置文件加入:

android {
packagingOptions {
exclude ‘META-INF/DEPENDENCIES.txt’
exclude ‘META-INF/LICENSE.txt’
exclude ‘META-INF/NOTICE.txt’
exclude ‘META-INF/NOTICE’
exclude ‘META-INF/LICENSE’
exclude ‘META-INF/DEPENDENCIES’
exclude ‘META-INF/notice.txt’
exclude ‘META-INF/license.txt’
exclude ‘META-INF/dependencies.txt’
exclude ‘META-INF/LGPL2.1’
}
}
在运行一次APP即可以成功编译。

感谢http://outofmemory.cn/wr/?u=http%3A%2F%2Fblog.lixiphp.com%2Foschina-app-android-studio%2F提供的信息;很有帮助,真的帮我搞定了;总算是可以开始真正的研究源代码了;

暂无评论

发表评论