Chinaunix首页 | 论坛 | 博客
  • 博客访问: 387679
  • 博文数量: 120
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 741
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-27 18:15
文章分类

全部博文(120)

文章存档

2016年(13)

2015年(41)

2014年(66)

我的朋友

分类: Android平台

2015-08-28 10:55:52

【问】
   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就可以了。

【】
阅读(969) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~