博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android工程引用jar包
阅读量:4144 次
发布时间:2019-05-25

本文共 2111 字,大约阅读时间需要 7 分钟。

先以email为例,看看如何引用第1,2方的jar
在4.0中email里有Email/emailcommon文件夹,和2.x结构不一样
这里也有个mk文件
email下面发现exchange文件夹不见了,原来是单独拿了出来
在exchange里面发现用到了emailcommon里面的类
emailcommon下部分mk文件代码如下LOCAL_MODULE := com.android.emailcommonLOCAL_STATIC_JAVA_LIBRARIES := guavaLOCAL_SRC_FILES := $(call all-java-files-under, src/com/android/emailcommon)LOCAL_SRC_FILES += $(call all-java-files-under, src/org)LOCAL_SRC_FILES += \    src/com/android/emailcommon/service/IEmailService.aidl \    src/com/android/emailcommon/service/IEmailServiceCallback.aidl \    src/com/android/emailcommon/service/IPolicyService.aidl \    src/com/android/emailcommon/service/IAccountService.aidlLOCAL_SDK_VERSION := currentinclude $(BUILD_STATIC_JAVA_LIBRARY)
LOCAL_MODULE := com.android.emailcommon 定义模块名称
include $(BUILD_STATIC_JAVA_LIBRARY) 生成一个jar,可供其他应用使用
编译email时会看到如下log
target Java: com.android.emailcommon (out/target/common/obj/JAVA_LIBRARIES/com.android.emailcommon_intermediates/classes)Copying: out/target/common/obj/JAVA_LIBRARIES/com.android.emailcommon_intermediates/classes-jarjar.jarCopying: out/target/common/obj/JAVA_LIBRARIES/com.android.emailcommon_intermediates/emma_out/lib/classes-jarjar.jarCopying: out/target/common/obj/JAVA_LIBRARIES/com.android.emailcommon_intermediates/classes.jartarget Static Jar: com.android.emailcommon (out/target/common/obj/JAVA_LIBRARIES/com.android.emailcommon_intermediates/javalib.jar)
out/target/common/obj/JAVA_LIBRARIES/com.android.emailcommon_intermediates下面的几个jar中都有emailcommon的源码
打开exchange的mk文件发现有如下代码
LOCAL_STATIC_JAVA_LIBRARIES := android-common com.android.emailcommon
这里引用了android-common和com.android.emailcommon
这样exchange就可以使用emailcommon的类文件了
下面看看如何引用第三方jar
将jar放在工程根目录下
mk文件要给下面两个变量赋值
LOCAL_STATIC_JAVA_LIBRARIES := library_name
LOCAL_PREBUILT_SATTIC_JAVA_LIBRARIES := library_name:xxx.jar即可

注意:这里引用的jar,里面必须是class形式的,如果里面是dex文件,那么编译的时候是无法找到相应的class文件

不要尝试把jar解开,然后把其中的dex文件用dex2jar转换成jar,虽然转换之后的jar里面是class形式的,编译时也能找到相应的class,但是打包的时候会失败,错误是关于字节码的

android的字节码和java的字节码还是不完全一致的,所以不要这么做

ps:library_name不要和其他库的LOCAL_STATIC_JAVA_LIBRARIES重名,不然整体编译的时候会冲突,无法生成img

当然,单独编译的时候不会有问题的

转贴请保留以下链接

本人blog地址

转载地址:http://vycti.baihongyu.com/

你可能感兴趣的文章
基于P5.js的“绘画系统”
查看>>
《达芬奇的人生密码》观后感
查看>>
论文翻译:《一个包容性设计的具体例子:聋人导向可访问性》
查看>>
基于“分形”编写的交互应用
查看>>
《融入动画技术的交互应用》主题博文推荐
查看>>
链睿和家乐福合作推出下一代零售业隐私保护技术
查看>>
Unifrax宣布新建SiFAB™生产线
查看>>
艾默生纪念谷轮™在空调和制冷领域的百年创新成就
查看>>
NEXO代币持有者获得20,428,359.89美元股息
查看>>
Piper Sandler为EverArc收购Perimeter Solutions提供咨询服务
查看>>
RMRK筹集600万美元,用于在Polkadot上建立先进的NFT系统标准
查看>>
JavaSE_day14 集合中的Map集合_键值映射关系
查看>>
异常 Java学习Day_15
查看>>
Mysql初始化的命令
查看>>
MySQL关键字的些许问题
查看>>
浅谈HTML
查看>>
css基础
查看>>
Servlet进阶和JSP基础
查看>>
servlet中的cookie和session
查看>>
过滤器及JSP九大隐式对象
查看>>