自http://www.cnblogs.com/SkyD/archive/2011/09/01/2161502.html

引言

之前一直头痛于没有办法在多个程序中共享资源,用作公共类库的方法也是使用的导出jar再导入的办法,现在终于初步搞明白了,可算解脱了~,分享出来。

建立公共库

首先建立公共库的Android项目,名为MyCoreLib:

完成后在左侧包浏览器里右键点选我们新建的这个项目,选择Properties项:

左侧选择Android分类,右侧勾选Is Library选项:

完成后在包资源管理器中删除默认生成的资源,以避免以后被引用时冲突:

打开AndroidManifest.xml,删除下图中红色部分代码:

添加测试用资源

至此初始的空库就建立完成了,现在我们来添加一个资源以供其他程序使用,我在这里仅添加了一个名为libName的字符串资源:

建立测试项目并引入公共库

现在新建一个名为LibTest的项目来尝试调用公共库:

还是右键点选项目,选择Properties:

还是左边选择Android分类,右边点击Add按钮选择以添加MyCoreLib类库到项目:

完成后即添加到项目中来了:

此时还能看到gen目录下也已经有MyCoreLib的包名及其资源ID了:

但此时你会发现字符串资源里莫名其妙多出两个之前已经删除的资源,这其实是因为此时已将引用的资源与程序默认包里的资源混编在一起了,你可以看到上面默认包里的资源ID和下面这里也是一模一样的。

换言之,你可以以使用本地资源的方式直接调用引用来的资源。

测试调用公共库的资源

比如在AndroidManifest.xml里这样修改:

在java代码中也同样是使用调用默认资源的方式直接调用即可,当然也可以显示加入公共库的包名以调用;但加入显示包名的方法在XML文件中行不通,多次尝试都提示找不到资源,也就是说在XML中只能以调用默认包资源的方式调用公共库资源。

编译并运行效果:

可以看到之前我们在公共库中设置的资源内容被正确显示出来了。

结语

这种调用方式不只是使资源调用成为可能,公共代码在编辑起来也比jar方式方便许多,非常实用。

之前网上寻找此方法许久都没获知,此时突然想起参考Scoreloop的引用方法,总算将其搞明白了。

Eclipse中Android公共库的正确建立及调用方法(转)的更多相关文章

  1. Eclipse中Android公共库的正确建立及调用方法

    Eclipse中Android公共库的正确建立及调用方法 引言 之前一直头痛于没有办法在多个程序中共享资源,用作公共类库的方法也是使用的导出jar再导入的办法,现在终于初步搞明白了,可算解脱了~,分享 ...

  2. Android 公共库的建立方法

    本文主要介绍在android工程中如何将共用代码建成公共包方便其他工程引用.引用后的工程结构分析.library引入方式的优缺点. 自己也写了一些android公共的库,有兴趣的可以参考 Trinea ...

  3. 自己总结的一些android公共库

    本文主要介绍自己在android开发中总结的一些公共库,目前包括下拉刷新ListView.可以响应各个方向CompoundDrawables点击操作的TextView.图片缓存,不断更新,欢迎交流 ? ...

  4. Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运行 Java公共类)

    介绍总结的一些android公共库,包含缓存(图片缓存.预取缓存).公共View(下拉及底部加载更多ListView.底部加载更多ScrollView.滑动一页Gallery).及Android常用工 ...

  5. Android公共库——图片缓存 网络缓存 下拉及底部更多ListView 公共类

    Android公共库——图片缓存 网络缓存 下拉及底部更多ListView 公共类 转载自http://www.trinea.cn/android/android-common-lib/ 介绍总结的一 ...

  6. Android 开源项目android-open-project工具库解析之(一) 依赖注入,图片缓存,网络相关,数据库orm工具包,Android公共库

    一.依赖注入DI 通过依赖注入降低View.服务.资源简化初始化.事件绑定等反复繁琐工作 AndroidAnnotations(Code Diet) android高速开发框架 项目地址:https: ...

  7. 【Java/Android性能优 7】Android公共库——图片缓存 网络缓存 下拉及底部更多ListView 公共类

    本文转自:http://www.trinea.cn/android/android-common-lib/ 介绍总结的一些android公共库,包含缓存(图片缓存.预取缓存.网络缓存).公共View( ...

  8. 解决eclipse中android添加重载函数时参数为arg0,arg1的问题

    遇到同样的问题,发现有人已经解决了,大体意思就是为android sdk 添加 src,以下是文章链接 http://blog.csdn.net/u014084081/article/details/ ...

  9. [学习笔记] 在Eclipse中添加用户库 Add User Libraries ,在项目中引用用户库

    如果还没有安装Eclipse, 则请参考前文:  [学习笔记] 下载.安装.启动 Eclipse(OEPE) 添加用户库 本文主要介绍在项目中直接使用第三方库的情况.就是把第三方的jar文件直接放到某 ...

随机推荐

  1. Geoserver端口冲突解决方案(二)

    转载:https://blog.csdn.net/sx341125/article/details/52091903 上一篇文章说了GeoServer的安装问题,其中一个问题就是GeoServer端口 ...

  2. PHP如何得到数组最后元素的key

    1.array_keys(end($arr)) $array = array( 'one'=>1, 'two'=>2, 'three'=>3, 'four'=>4, ); $a ...

  3. spring MVC basic

    1.MVC&&Spring MVC .mvc的就核心思想是业务数据抽取同业务数据呈现相分离 .View,视图层,为用户提供UI,重点关注数据的呈现 .model,业务数据的信息表示,关 ...

  4. Hibernate - POJO 类和数据库的映射文件*.hbm.xml

    POJO 类和关系数据库之间的映射可以用一个XML文档来定义. 通过 POJO 类的数据库映射文件,Hibernate可以理解持久化类和数据表之间的对应关系,也可以理解持久化类属性与数据库表列之间的对 ...

  5. Android数据传递的五种方法汇总

    Android开发中,在不同模块(如Activity)间经常会有各种各样的数据需要相互传递,我把常用的几种 方法都收集到了一起.它们各有利弊,有各自的应用场景. 我现在把它们集中到一个例子中展示,在例 ...

  6. POJ-1564 dfs

    #include"cstring" #include"cstdio" +; int nux[maxn]; int nua[maxn];//解的集合 int t; ...

  7. ACM学习历程—HDU5587 Array(数学 && 二分 && 记忆化 || 数位DP)(BestCoder Round #64 (div.2) 1003)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5587 题目大意就是初始有一个1,然后每次操作都是先在序列后面添加一个0,然后把原序列添加到0后面,然后 ...

  8. iOS中的日期和时间

    转载于http://www.jianshu.com/p/ee279c175cf8 一.时间和日期计算 我们在应用开发中,时常需要和时间打交道,比如获取当前时间,获取两个时间点相隔的时间等等,在iOS开 ...

  9. 洛谷【P1908】逆序对

    题目传送门:https://www.luogu.org/problemnew/show/P1908 所谓逆序对,就是序列中\(a[i]>a[j]\)且\(i<j\)的有序对. 所以我们在归 ...

  10. Linux系统主流架构一

    Linux系统主流架构一 随着IT运维的不断发展,尤其的Linux的飞速发展,越来越多的企业开始使用Linux操作系统,例如:Centos.Red Hat.Ubuntu.Fadora等等,成千上亿个网 ...