【问】
FrameWork中如何添加一个第三方的jar库?我目前只做到了编译进内核中,但是在FrameWork的代码中调用时始终找不到我添加进去的jar库?请问大佬们问题出在哪里呢?非常感谢!
【答1】
修改android\system\core\rootdir\init.rc
export BOOTCLASSPATH 这里加上你的jar文件路径就可以了。
修改之后需要make sdk。
【问2】
按照楼上的方法,还把文件拷贝到了out\target\product\generic\system下面,但是进行make SDK使得里面的文件全部被清空了,那我这个文件应该拷贝到哪里呢?
【答2】
不需要手动copy,copy过去也没有用,因为那个地方是系统存放编译结果的地方,当然会清掉。
你修改源代码树中的文件,然后make sdk,这样framework中的组件就可以访问你添加的jar包了。
【答2】
需要和完整的 source tree 一起編譯,最好是產生一個 product tree。例如:我寫了一個 LedService.java,要編譯成 mokoid.jar,只需要一個 Android.mk 即可(透過 Android build system 來做)。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
LedService.java
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE := mokoid
include $(BUILD_JAVA_LIBRARY)
可以參考一下 Mokoid 範例包,很快可以得到解答。
【问3】
恩…… 但是make sdk得到的是Linux版本的,如果需要windows版本的sdk…… 除了cygwin还有没有更简单的办法??(有Linux的编译服务器,但是开发环境是Windows的)
【答3】
如果你有了linux版,在development/tools下面有个make_windows_sdk.sh,这个shell是用来生成windows版sdk的。
【答3】
貌似在android2.2下make_windows_sdk.sh已经放在这个目录下了android\development\build\tools。
【答】
修改platform.xml 在里面添加你要增加的类,
如:
<library name="javax.obex"
file="/system/framework/javax.obex.jar"/>
【答】
参考下面的blog修改Android.mk文件
http://blog.csdn.net/xijiaohuangcao/article/details/5572061
【问者结】
可以解决了。在framework/opt/下面有*.jar.可以按照原来的例子写一下。然后我是在framework/base下面调用jar包里面的接口,所以只需要在frameworks/base/Android.mk中的LOCAL_STATIC_JAVA_LIBRARIES := libgoogleclient这一行的后面添加你在frameworks/opt/下面Android.mk中的LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := name:*.jar中的name就可以了。然后你就可以再frameworks/base下面的其他地方调用了。编写完之后然后make update-api;make sdk就可以了。
【】
阅读(1085) | 评论(0) | 转发(0) |