Chinaunix首页 | 论坛 | 博客
  • 博客访问: 344025
  • 博文数量: 42
  • 博客积分: 1896
  • 博客等级: 上尉
  • 技术积分: 615
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-19 14:47
文章分类

全部博文(42)

文章存档

2012年(1)

2011年(21)

2010年(16)

2009年(4)

分类: 嵌入式

2011-08-22 16:20:01

使用eclipse创建的android project,如果需要依赖3rd-part的jar包:
1.在修改project根目录下.classpath 文件,添加
2.右键工程:Build Path->Configure Build Path, Libraries标签,Add Library,然后...

但是如果3rd-part中含有resource文件(字体,图片之类),前面提到的两种方式引入jar所生成的APK的结构是不一样的,通过修改.classpath添加的依赖,eclipse除了会把jar编译到dex中去,还会把3rd-part的jar包中的resource文件提出来,放在APK包的跟目录下,这样的apk安装后运行是没有问题的。但是如果通过Add User Libraries的方式添加的依赖,编译出来的APK就不会被单独提出来,而android的resource是不能放在jar包中的,所有如果你的3rd-part中有这样的代码:LibClass.class.getResource("xxx.png"),程序在运行的时候就会找不到资源,字体资源也类似。

还有一种方式就是:如果你有3rd-part library的源码,可以通过创建一个android的library project(http://developer.android.com/guide/developing/projects/projects-cmdline.html#SettingUpLibraryProject),然后在你的project引用这个project,在你的APK打包的时候同样会把3rd-part资源打到apk中。

如果需要将3rd-part的jar加到android 源代码的编译系统中,可以在android.mk中加上
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
...
LOCAL_STATIC_JAVA_LIBRARIES := 3rd-part
...
include $(BUILD_PACKAGE)

include $(CLEAR_VARS)

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=
3rd-part:lib/3rd-part.jar

                   
include $(BUILD_MULTI_PREBUILT)


但是这样同样无法将resource文件打包到apk中,目前找到的解决办法就是把第三方的源码引入使用library project来引用。

继续研究eclipse的ADT是怎么做到资源文件的分离的...
阅读(9518) | 评论(0) | 转发(0) |
0

上一篇:Android 编译大全

下一篇:Android Build Cookbook

给主人留下些什么吧!~~