先以email为例,看看如何引用第1,2方的jar
在4.0中email里有Email/emailcommon文件夹,和2.x结构不一样
这里也有个mk文件
email下面发现exchange文件夹不见了,原来是单独拿了出来
在exchange里面发现用到了emailcommon里面的类
emailcommon下部分mk文件代码如下
LOCAL_MODULE := com.android.emailcommon
LOCAL_STATIC_JAVA_LIBRARIES := guava
LOCAL_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.aidl
LOCAL_SDK_VERSION := current
include $(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.jar
Copying: out/target/common/obj/JAVA_LIBRARIES/com.android.emailcommon_intermediates/emma_out/lib/classes-jarjar.jar
Copying: out/target/common/obj/JAVA_LIBRARIES/com.android.emailcommon_intermediates/classes.jar
target 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://su1216.iteye.com/
http://blog.csdn.net/su1216/
分享到:
相关推荐
使用android studio生成jar包,并且使用映射来完美调用资源文件。包含两个工程,一个如何生成jar包,一个是如何使用jar包,调用资源文件。使用详情可以关注我的blog,http://blog.csdn.net/jujishou521
这个"android-30" jar包可能是开发者从Android源码编译后得到的,包含了未公开的类和方法,可以用来调用隐藏API。 3. **使用风险**: 使用隐藏API可能导致应用程序在未来的系统更新中失效,因为这些接口可能会在...
在Unity游戏开发中,有时需要使用到Android原生代码,比如访问硬件设备、处理复杂的算法或是实现特定功能,这时就需要将Java代码打包成.JAR文件,然后在Unity中调用。这个过程涉及到Android Studio和Unity两个开发...
首先,我们有两个关键工程:一个是生成JAR包的工程,另一个是用于测试JAR包的工程。这两个工程都在名为"jarDemo"的压缩包内。生成JAR包的工程通常包含了我们想要封装的功能或组件,而测试工程则用来验证JAR包的功能...
作为Android程序开发,我们自己在实际项目的开发过程中,经常会遇到我们打的Jar包需要动态的读取主项目工程中的资源文件,那么有没有一种好的方式,能够让Jar包非常方便的读取与展示主工程中的资源文件呢?...
在Android工程的`build.gradle`文件中,可以添加依赖项来引用这些`jar`包。例如,对于本地`jar`,可以使用`implementation fileTree(dir: 'libs', include: ['*.jar'])`语句将其包含进来。 总的来说,`jar`包在...
android studio 生成aar包并在其他工程引用 (导入)aar包 具体 介绍: http://blog.csdn.net/q610098308/article/month/2016/06 Android Studio 如何打JAR包 : ...
当Activity依赖于资源文件时,直接引用资源(如R.layout.main_activity)在jar包中会导致“资源ID未找到”的异常,因为编译时资源ID是基于构建jar包的项目的资源目录生成的,而非调用方项目。 #### 解决方案: ...
Android PackageManager 有很多方法是没有暴漏出来的,我们如果想调用的话需 ...android_dependency.jar 提供了反射调用相关的class定义,直接放到你的工程libs目录下面,然后就可以进行反射调用PackageManager的API。
《unidbg0.9.5 Jar包详解》 在IT行业中,动态调试与逆向工程是软件开发和安全分析的重要组成部分。unidbg是一个强大的开源动态二进制调试器,专为Android平台设计,同时也支持其他平台。本文将深入探讨unidbg的...
自己编译的 Android12版本-framework源码jar 来源:AOSP源分支 android-12.1.0_r11
这种插件的主要功能是分析项目的依赖关系,找出那些未被项目代码引用的jar包,并将其剔除。这样可以显著优化项目结构,减少不必要的资源占用,提高构建速度和运行性能。下面我们将深入探讨这个话题。 首先,了解...
综上所述,这个"soot相关jar包"包含了使用Soot进行Java字节码分析和优化,特别是针对Android应用所需的必要组件。通过学习和使用Soot,开发者可以提升对Java程序和Android应用的理解,进行高效的性能优化和安全分析...
1 将 CpsLite.jar放到工程libs目录下 2 在工程里增加上述相关Jar 3 接口调用 A 初始化 在应用的Application 继承类的onCreate函数增加如下代码 import com.cps.DataListener; import com.cps.Whale; public class...
本文将详细介绍如何在Java项目中搭建SSH2环境,并利用相关的Jar包进行开发。 首先,SSH2环境的搭建主要包括两个部分:获取SSH2的Java库和配置项目依赖。在提供的"SSH2环境搭建Jar包"中,"library"可能包含了必要的...
导入这个jar包后,无需关注底层实现,只需调用相关的API即可完成工作。 以下是使用`javabase64-1.3.1.jar`进行Base64编码和解码的基本步骤: 1. **添加依赖**:首先,将`javabase64-1.3.1.jar`文件复制到你的项目...
总结,Java jar包的混淆加密是提升代码安全的重要手段,通过ProGuard等混淆工具和加密技术,可以有效降低源代码被逆向工程分析的风险。然而,安全是一个持续的过程,开发者应始终保持警惕,及时更新和优化保护策略。
总的来说,"jar包查看工具"是Java和Android开发者不可或缺的辅助工具,它帮助开发者高效地理解和利用JAR文件,提高开发效率和解决问题的能力。在实际开发中,掌握如何使用这类工具,能够有效提升对项目的控制力和...
标题提到的“获取apk包名的ant等jar包”主要涉及两个工具:Ant和Apktool,它们都是Java库,以JAR文件形式存在,并在Android开发中扮演着关键角色。 首先,我们来详细了解一下Ant。Ant是一个由Apache软件基金会开发...
wps实现文档阅读功能所需的jar包,如果需要使用AIDL方式操作wps,需要将moffice-aidl.jar和moffice-event-interface.jar两个jar包导入到自己的工程中,并在eclipse中选择Java Build Path的Order and Export中选中两...