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

Github安卓开源项目编译运行

转:http://blog.csdn.net/laihuan99/article/details/9054985

很多新手朋友朋友在Github搜索开源项目时,有时候不明白怎么导入eclipse。的确,有的时候那些项目只有源码,要自己打包JAR或连接Library使用,新手朋友是摸不到头脑的。我简单的归纳如下:

第一类:直接项目

这类是最简单的。你一看就知道是个android项目源码。 例子:看雪论坛https://github.com/kanxue-team/kanxue-android-app 操作:你可直接下载,解压,直接Import进eclipse就可编译运行了。

第二类:Library和演示代码合体

这类一般是某小组件的项目源码(结构如图1),在文件列表中,一般可看到两个文件夹,一个是Library,一个是demo。其中Library是组件项目的源代码,而demo只是一个简单的演示使用组件的代码。

例子:pulltorefresh组件 https://github.com/johannilsson/android-pulltorefresh 图1 操作: ①我们以pulltorefresh为例子,你可直接下载,解压至一个目录如“E:…/ android-pulltorefresh-master”,如图1可可知,pulltorefresh为Library,而pulltorefreshexample为演示demo。

②Eclipse导入android-pulltorefresh-master目录,注意导入此目录时,会显示导入两个项目pulltorefresh和pulltorefreshexample,我们两个都要勾选导入。

③设定pulltorefresh为 Library。右击pulltorefresh项目点击Properties-->点击左侧框内的”android”-->右下界面点击选中“Is Library”复选框-->点OK完成。 ④pulltorefreshexample项目导入Library。在pulltorefreshexample项目下打开与AndroidManifest.xml同一目录下的project.properties文件。 添加一行:android.library.reference.1=../pulltorefresh/ 其是指定一个要引用的library的目录,可用绝对和相对路径,此例中“..”代表当前目录的上一级(既E:…/ android-pulltorefresh-master目录),“../pulltorefresh/”既我们的pulltorefresh项目的目录了。

第三类:打包jar文件使用

这类一般是某小组件的项目源码,在文件列表中,一般只有项目的源代码,没有演示代码(使用在说明文档)或演示代码不能直接使用。我们需要把源代码自己打包成jar文件,供我们项目使用。(另一种很好的方案是library,在你项目如第二类第四步那样直接引用此源代码)

例子:async-http组件https://github.com/loopj/android-async-http 操作:

①你可直接下载,解压,直接Import进eclipse。但注意你是不能运行的。 看到project.properties文件里的“android.library=true”了吗,它就是个library。

②打包jar。可以在eclipse的File->Export->Java->JAR file里打出jar文件。弹出的对话框设置如下:

只需选src和assets文件夹,由侧配置文件不选。输出文件修改JAR file即可。点Finish完成。

③你的项目导入jar包。直接把生成的library.jar放入“libs”,注意在此目录的JAR,elipse会自动配置,“libs”目录名不可更改,否则需手动配置。

相关文章:

  • Dynamic CRM 2013学习笔记(四十四)CRM技术支持
  • 在Apache配置https方式访问网站
  • C语言基础总结 ( 一 )----------函数和进制的总结
  • 类似qq的IM聊天应用源码
  • NEC Topaz电话交换机简单管理
  • Android异步加载全解析之引入一级缓存
  • 30.图片灯箱插件——lightBox
  • 等待实习的offer中的想法
  • WebStorm提示快捷键
  • 在VMware Workstation上安装Kali Linux
  • windows运行打开服务命令的方法 :
  • AppCode cocoapods install 慢
  • ActiveMQ的集群与高可用
  • 【C++】atoi与stoi
  • iPhone/iPad被停用怎么办 3招轻松解锁
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • Android Volley源码解析
  • docker容器内的网络抓包
  • Intervention/image 图片处理扩展包的安装和使用
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • jquery ajax学习笔记
  • nginx 负载服务器优化
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 看域名解析域名安全对SEO的影响
  • 终端用户监控:真实用户监控还是模拟监控?
  • C# - 为值类型重定义相等性
  • Linux权限管理(week1_day5)--技术流ken
  • 仓管云——企业云erp功能有哪些?
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • # centos7下FFmpeg环境部署记录
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (三)mysql_MYSQL(三)
  • (四)图像的%2线性拉伸
  • *p++,*(p++),*++p,(*p)++区别?
  • .net core 6 集成和使用 mongodb
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .NET与 java通用的3DES加密解密方法
  • .net中调用windows performance记录性能信息
  • @DataRedisTest测试redis从未如此丝滑
  • @RunWith注解作用
  • [Android] 修改设备访问权限
  • [C#]C# winform部署yolov8目标检测的openvino模型
  • [CISCN2021 Quals]upload(PNG-IDAT块嵌入马)
  • [CQOI 2011]动态逆序对
  • [CTF]php is_numeric绕过
  • [CTSC2014]企鹅QQ
  • [DAU-FI Net开源 | Dual Attention UNet+特征融合+Sobel和Canny等算子解决语义分割痛点]
  • [flask]http请求//获取请求头信息+客户端信息
  • [G-CS-MR.PS02] 機巧之形2: Ruler Circle
  • [hibernate]基本值类型映射之日期类型
  • [LeetCode]—Roman to Integer 罗马数字转阿拉伯数字