android:关于主工程和library project

转载自:  http://blog.sina.com.cn/s/blog_a3b9b9040101lco3.html

在Github上下载了Android开源项目 Quick News的源码, 其中使用到了第三方项目框架 vitamio, 在下载的源码导入到IDE后, 发现凡是引用vitamio的文件都会报错, 在不知如何解决该问题的时候, 又回到Github该项目的页面, 认真看了看该项目的介绍, 发现了这句描述"QuickNews is a run project and vitamio is a library project." 于是决定搜索 library project的含义, 就找到了这篇文章http://blog.sina.com.cn/s/blog_a3b9b9040101lco3.html, 在它的帮助下, 我解决了上述报错的问题, 故转载以备今后再次遇到类似问题时作为指导.

1、如何将一个android工程作为库工程(library project)

library project是作为jar包被其它android工程使用的,首先它也是普通的android工程。然后:

1)在eclipse Package Explorer, 右键android工程选择Properties

2)选择Android,下拉右边的滚动条到最下面,选中”Is Library“

3)点击Apply,点击OK

这个android工程就成为了library工程。

注意:作为library工程可以引用外部jar包,但不能引用其它library工程,在library工程中不能使用aidl文件,不能引用raw、assets下资源

另外当试图运行一个library工程时,eclipse将报错:

2、主工程如何引用库工程

当引用lib工程后,主工程就可以调用library工程的相关类和方法。android工程引用其它library工程步骤:

1)在Package Explorer, 右键android工程选择Properties

2)选择Android,下拉右边的滚动条到最下面

3)点击Add按钮打开lib工程选择对话框

4)从选择对话框中选择工程,点击OK

5)点击Apply按钮,点击OK按钮

3、在主工程manifest.xml文件中声明lib工程的组件

主工程manifest.xml中必须添加library工程的所有Activity、Service、receiver、provider,还要添加library工程的permission、uses-library等属性,注意引用的组件要使用完全的包名,否则将报对应的NotFoundException。

4、库工程与主工程资源冲突问题

当运行有引用library工程的android工程时,android工具将会合并library工程与主工程的所有资源。如果一个资源ID将有可能在library工程之间或library工程、主工程之间都有定义,这时候优先级别高的资源ID将覆盖优先级别低的,使用资源时将使用有线级别最高的工程的资源。工程之间优先级别如何判定,请看下一条。

5、库工程之间以及主工程的资源使用上的优先级问题

上图显示一个android工程引用了四个library工程,这四个library工程和主工程之间是有优先级之分的。android主工程的优先级别最高,四个library工程科举上图排序有上到下优先级别依次降低。library工程之间也可以手动排序,选择其中一个,点击up(提高优先级)或者down(降低优先级)。

6、库工程和主工程使用不同的android platform version问题

主工程打包时,android sdk版本使用的是主工程。所以library工程使用的android sdk版本要不高于主工程的sdk版本。如果library工程sdk版本高于主工程,将不能通过编译。

时间: 2024-10-21 09:17:22

android:关于主工程和library project的相关文章

Android 引用library project

1.如何将一个android工程作为库工程(library project) library project是作为jar包被其它android工程使用的,首先它也是普通的android工程.然后: 1)在eclipse Package Explorer, 右键android工程选择Properties 2)选择Android,下拉右边的滚动条到最下面,选中"Is Library" 3)点击Apply,点击OK 这个android工程就成为了library工程. 2.主工程如何引用库工程

iOS 工程套子工程,主工程和framework工程或.a静态库工程联调

一.主工程套Library(即.a)工程联调 1.新建一个主工程和一个Library工程,如何创建Library工程参照我另外一篇博客iOS 最新framework和.a静态库制作及使用全解但这个Library工程不需要编译成静态库 2.将静态库工程拖到主工程,我这里拖到下图箭头所指的UseA文件夹下(如果你要拖到其他目录,就要改Library Search Paths,下面我会介绍Search Paths路径相关知识) 3.将Library工程下Products目录下的.a文件拖入主工程的Li

Android项目引用2个以上library project 时的报错

[2012-11-24 11:33:58 - myProject] Found 2 versions of android-support-v4.jar in the dependency list, [2012-11-24 11:33:58 - myProject] but not all the versions are identical (check is based on SHA-1 only at this time). [2012-11-24 11:33:58 - myProjec

关于Android Studio 导入Library Project 以及遇到的一些问题

在项目根目录下建立一个libraries文件夹,移动你要使用的library project到libraries目录(复制到工程的话,复制过来的库工程里面的src目录下的代码会丢失) 注意:你的library project一定要保证有自己的build.gradle,如果没有,应该用Eclipse导出该工程 在Eclipse中选择要导出的项目,然后依次选择菜单 file->export->Android->Generate Gradle build files. 之后依次点击next到f

Android 创建Library Project(库项目)与引用操作

由于在开发过程,为了实现未曾了解的某种效果与特定功能,而求助于网上优秀的开源项目,在使用过程中发现引用开源的Library Project(库项目),的确可以解决很多问题,而且也给出了一种思路,好的软件公司也需要有自己的Library Project(库项目),这样不必要进行重复开发工作,这只是自己的想法.下面将自己的心得或体会记录如下,以下是自己的编写风格. [转载使用,请注明出处:http://blog.csdn.net/mahoking/article/details/36405219]

【转】Android 创建Library Project(库项目)与引用操作

原文网址:http://www.2cto.com/kf/201407/313718.html 应用场景: 在项目的开发过程中,经常会使用公司内部的公共库或使用优秀的开源项目库,以求达到快速开发.代码复用的效果.所开发的项目中要集成其他项目由于集成项目庞大,不想机械的复制,就想将集成的项目做成项目库.基于这样的需求,引用Library Project(库项目),成为了迫切的需要,这样做以后集成项目升级.扩展也都方便与快捷.为此,我们不得不去了解Android Library Project(库项目

Android导入工程提示Invalid project description

在eclipse里导入的时候报错,提示 Invalid project description. 解决办法: 在eclipse的workspace中,找到.metadata文件夹,依次打开------->.plugins文件夹------->org.eclipse.core.resources文件夹------->.projects文件夹 找到你的项目包名一样的文件夹,删除它. 然后从你的workspace中把你的整个项目文件剪切到别的文件夹下,最后重新导入项目,ok 完事. Andro

android ant 打包,不能打出apk:Library project: do not create apk...

问题,打包完成后不能打出apk 是这里的这句话提示的: <do-only-if-not-library elseText="Library project: do not create apk..." > (这句话来自:D:.....\sdk\tools\ant\build.xml) 原因:这个地方打了勾,表示这是给其他项目依赖的项目,不用生成apk 从这个文件也可以开出,是被依赖项 为true就是被依赖项

android ant 打包全过程 包含library,so,jar,混淆,签名

1.先来一个基础的配置文件(build.properties) ##最后生成目录 #relase.abs.dir=C:\\Users\\Administrator\\Desktop # ##工程绝对路径 #storeapp.abs=F:\\ZhangLeRepository\\trunk\\Andorid\\StoreApp #photoview.abs=F:\\ZhangLeRepository\\trunk\\Andorid\\PhotoView #andbase.abs=F:\\Zhang