`
su1216
  • 浏览: 670456 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
深入入门正则表达式(jav...
浏览量:71876
E60283d7-4822-3dfb-9de4-f2377e30189c
android手机的安全问...
浏览量:128680
社区版块
存档分类
最新评论

android工程引用jar包

阅读更多

先以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包并调用资源文件

    使用android studio生成jar包,并且使用映射来完美调用资源文件。包含两个工程,一个如何生成jar包,一个是如何使用jar包,调用资源文件。使用详情可以关注我的blog,http://blog.csdn.net/jujishou521

    android 隐藏api jar包,api 30

    这个"android-30" jar包可能是开发者从Android源码编译后得到的,包含了未公开的类和方法,可以用来调用隐藏API。 3. **使用风险**: 使用隐藏API可能导致应用程序在未来的系统更新中失效,因为这些接口可能会在...

    android 将项目生成jar包Demo

    首先,我们有两个关键工程:一个是生成JAR包的工程,另一个是用于测试JAR包的工程。这两个工程都在名为"jarDemo"的压缩包内。生成JAR包的工程通常包含了我们想要封装的功能或组件,而测试工程则用来验证JAR包的功能...

    Android的Jar包从主项目工程中读取并展示资源文件

    作为Android程序开发,我们自己在实际项目的开发过程中,经常会遇到我们打的Jar包需要动态的读取主项目工程中的资源文件,那么有没有一种好的方式,能够让Jar包非常方便的读取与展示主工程中的资源文件呢?...

    android studio 打包.jar到unity调用 unity工程

    在Unity游戏开发中,有时需要使用到Android原生代码,比如访问硬件设备、处理复杂的算法或是实现特定功能,这时就需要将Java代码打包成.JAR文件,然后在Unity中调用。这个过程涉及到Android Studio和Unity两个开发...

    android jar包

    在Android工程的`build.gradle`文件中,可以添加依赖项来引用这些`jar`包。例如,对于本地`jar`,可以使用`implementation fileTree(dir: 'libs', include: ['*.jar'])`语句将其包含进来。 总的来说,`jar`包在...

    android studio 生成aar包,jar 包

    android studio 生成aar包并在其他工程引用 (导入)aar包 具体 介绍: http://blog.csdn.net/q610098308/article/month/2016/06 Android Studio 如何打JAR包 : ...

    Android将Activity打成jar包供第三方调用

    当Activity依赖于资源文件时,直接引用资源(如R.layout.main_activity)在jar包中会导致“资源ID未找到”的异常,因为编译时资源ID是基于构建jar包的项目的资源目录生成的,而非调用方项目。 #### 解决方案: ...

    Android_Dependency的Jar包

    Android PackageManager 有很多方法是没有暴漏出来的,我们如果想调用的话需 ...android_dependency.jar 提供了反射调用相关的class定义,直接放到你的工程libs目录下面,然后就可以进行反射调用PackageManager的API。

    unidbg0.9.5 Jar包

    《unidbg0.9.5 Jar包详解》 在IT行业中,动态调试与逆向工程是软件开发和安全分析的重要组成部分。unidbg是一个强大的开源动态二进制调试器,专为Android平台设计,同时也支持其他平台。本文将深入探讨unidbg的...

    删除无用的jar包的插件

    这种插件的主要功能是分析项目的依赖关系,找出那些未被项目代码引用的jar包,并将其剔除。这样可以显著优化项目结构,减少不必要的资源占用,提高构建速度和运行性能。下面我们将深入探讨这个话题。 首先,了解...

    soot相关jar包

    综上所述,这个"soot相关jar包"包含了使用Soot进行Java字节码分析和优化,特别是针对Android应用所需的必要组件。通过学习和使用Soot,开发者可以提升对Java程序和Android应用的理解,进行高效的性能优化和安全分析...

    基于基站定位的android jar包

    1 将 CpsLite.jar放到工程libs目录下 2 在工程里增加上述相关Jar 3 接口调用 A 初始化 在应用的Application 继承类的onCreate函数增加如下代码 import com.cps.DataListener; import com.cps.Whale; public class...

    SSH2环境搭建Jar包

    本文将详细介绍如何在Java项目中搭建SSH2环境,并利用相关的Jar包进行开发。 首先,SSH2环境的搭建主要包括两个部分:获取SSH2的Java库和配置项目依赖。在提供的"SSH2环境搭建Jar包"中,"library"可能包含了必要的...

    Base64编码jar包

    导入这个jar包后,无需关注底层实现,只需调用相关的API即可完成工作。 以下是使用`javabase64-1.3.1.jar`进行Base64编码和解码的基本步骤: 1. **添加依赖**:首先,将`javabase64-1.3.1.jar`文件复制到你的项目...

    对java jar包实现混淆加密

    总结,Java jar包的混淆加密是提升代码安全的重要手段,通过ProGuard等混淆工具和加密技术,可以有效降低源代码被逆向工程分析的风险。然而,安全是一个持续的过程,开发者应始终保持警惕,及时更新和优化保护策略。

    jar包查看工具.zip

    总的来说,"jar包查看工具"是Java和Android开发者不可或缺的辅助工具,它帮助开发者高效地理解和利用JAR文件,提高开发效率和解决问题的能力。在实际开发中,掌握如何使用这类工具,能够有效提升对项目的控制力和...

    获取apk包名的ant等jar包

    标题提到的“获取apk包名的ant等jar包”主要涉及两个工具:Ant和Apktool,它们都是Java库,以JAR文件形式存在,并在Android开发中扮演着关键角色。 首先,我们来详细了解一下Ant。Ant是一个由Apache软件基金会开发...

    基于将Android工程做成jar包和资源文件的解决方法

    在Android开发中,有时我们需要将一个工程打包成jar或aar库,以便于其他开发者集成到他们的项目中。然而,当我们将工程打包成jar时,由于jar格式不支持资源文件,因此无法直接引用如`R.layout.main`或`R.string.name...

    SlidingMenu第三方jar包

    用于第三方引用的jar包,可以实现SlidingMenu侧滑菜单,将第三方jar包放在当前工程的libs文件夹下,在当前项目上点击右键--》Build Path--》Configure Build Path--》Order and Export,如果Android Private ...

Global site tag (gtag.js) - Google Analytics