`
xuela_net
  • 浏览: 525685 次
文章分类
社区版块
存档分类
最新评论

android工程中引入第三方JAR包后安装APK时老是提示找不到库文件 || Android如何将程序打成jar包 || 运行java.lang.noclassdeffounderror错误 android工程中引入第三方JAR包后安装APK时老是提示找不到库文件 || Android如何将程序打成jar包 || 运行java.lang.noclassdeffounderror错误

 
阅读更多

android工程中引入第三方JAR包后安装APK时老是提示找不到库文件 || Android如何将程序打成jar包 || 运行java.lang.noclassdeffounderror错误

分类:android研发3826人阅读评论(4)收藏举报

使用第三方jar包

除了我以下介绍的方法,别的方法我基本上都试验过,均会出现编译或运行错误。以下方法经测试编译和运行都完全没问题。

步骤:

方法1:Eclipse下,

右键工程,
Build path,
java build path,选择libraries
在右边的按钮中点击“Add Library”
选择“User library”,点击“下一步”
点击“User librarys”按钮
在出现的界面中点击“New..”按钮
在弹出的界面中随便起一个名字,点击“确定”
点击“Add jars”按钮选择第三方jar包,点击“确定”完成。
后面的步骤很重要,如果不进行后面的操作。在Eclipse里显示编译通过,不会有错误,但在模拟器或真机上运行的时候可能就会出现java.lang.noclassdeffounderror之类的错误:
1、在Android项目根目录下新建一个libs文件夹;
2、把你需要的导入的第三方Jar包复制进这个目录;

3、在libs目录上点右键,选Bulid path–> Use as source folder。

方法2,android源码环境下,

1,将out/target/common/obj/JAVA_LIBRARIES/powersave_intermediates下的classess.jar文件放在自己的工程目录下。out/target/product/ventana/system/framework目录下的jar包用以下方法经验证是不好使的,因为他已经打成dex文件了,在工程里引用其包是不行的;

2,修改android.mk文件,如下:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-java-files-under, src)

LOCAL_STATIC_JAVA_LIBRARIES := libpowerjar libpowersave

LOCAL_PACKAGE_NAME := testPowerjar

LOCAL_CERTIFICATE := platform

include $(BUILD_PACKAGE)
##############################################
include $(CLEAR_VARS)

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libpowerjar:classes.jar libpowersave:testlily.jar
include $(BUILD_MULTI_PREBUILT)

# Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))


解释:LOCAL_STATIC_JAVA_LIBRARIES :=libpowerjar和LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=libpowerjar:classes.jar其实libarity是个名字可以随便取,两个属性的值要一样就好了,但是后面那个冒号里面就一定要写你的jar包名,你的jar包一定放在工程的根目录就好了。我这里是使用两个jar包的例子。

3,源码目录下编译即可:# mmm package/app/testPowerjar,如果出错提示说找不到jar包所打的package,那么请#touchclasses.jar即可.


生成jar包:

方法1:Eclipse下,
1. 创建java 或android project;
2. 工程属性java build path->Libraries中加入android.jar
3. package explorer中右键点击工程,export java->jar file.

方法2:Android源码环境下

1,修改Android.mk文件,

LOCAL_PATH:= $(call my-dir)
# the library
# ============================================================
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := powersave.java

LOCAL_MODULE := powersave

include $(BUILD_JAVA_LIBRARY)

# additionally, build unit tests in a separate .apk
include $(call all-makefiles-under,$(LOCAL_PATH))

2,编译 # mmm powersave(自己的模块)

其中,BUILD_JAVA_LIBRARY代表生成jar包,包的位置放在out/target/product/ventana/system/framework和out/target/common/obj/JAVA_LIBRARIES/powersave_intermediates(自己的模块)下,

参考:http://www.eoeandroid.com/thread-34527-1-1.html

使用第三方jar包

除了我以下介绍的方法,别的方法我基本上都试验过,均会出现编译或运行错误。以下方法经测试编译和运行都完全没问题。

步骤:

方法1:Eclipse下,

右键工程,
Build path,
java build path,选择libraries
在右边的按钮中点击“Add Library”
选择“User library”,点击“下一步”
点击“User librarys”按钮
在出现的界面中点击“New..”按钮
在弹出的界面中随便起一个名字,点击“确定”
点击“Add jars”按钮选择第三方jar包,点击“确定”完成。
后面的步骤很重要,如果不进行后面的操作。在Eclipse里显示编译通过,不会有错误,但在模拟器或真机上运行的时候可能就会出现java.lang.noclassdeffounderror之类的错误:
1、在Android项目根目录下新建一个libs文件夹;
2、把你需要的导入的第三方Jar包复制进这个目录;

3、在libs目录上点右键,选Bulid path–> Use as source folder。

方法2,android源码环境下,

1,将out/target/common/obj/JAVA_LIBRARIES/powersave_intermediates下的classess.jar文件放在自己的工程目录下。out/target/product/ventana/system/framework目录下的jar包用以下方法经验证是不好使的,因为他已经打成dex文件了,在工程里引用其包是不行的;

2,修改android.mk文件,如下:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-java-files-under, src)

LOCAL_STATIC_JAVA_LIBRARIES := libpowerjar libpowersave

LOCAL_PACKAGE_NAME := testPowerjar

LOCAL_CERTIFICATE := platform

include $(BUILD_PACKAGE)
##############################################
include $(CLEAR_VARS)

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libpowerjar:classes.jar libpowersave:testlily.jar
include $(BUILD_MULTI_PREBUILT)

# Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))


解释:LOCAL_STATIC_JAVA_LIBRARIES :=libpowerjar和LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=libpowerjar:classes.jar其实libarity是个名字可以随便取,两个属性的值要一样就好了,但是后面那个冒号里面就一定要写你的jar包名,你的jar包一定放在工程的根目录就好了。我这里是使用两个jar包的例子。

3,源码目录下编译即可:# mmm package/app/testPowerjar,如果出错提示说找不到jar包所打的package,那么请#touchclasses.jar即可.


生成jar包:

方法1:Eclipse下,
1. 创建java 或android project;
2. 工程属性java build path->Libraries中加入android.jar
3. package explorer中右键点击工程,export java->jar file.

方法2:Android源码环境下

1,修改Android.mk文件,

LOCAL_PATH:= $(call my-dir)
# the library
# ============================================================
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := powersave.java

LOCAL_MODULE := powersave

include $(BUILD_JAVA_LIBRARY)

# additionally, build unit tests in a separate .apk
include $(call all-makefiles-under,$(LOCAL_PATH))

2,编译 # mmm powersave(自己的模块)

其中,BUILD_JAVA_LIBRARY代表生成jar包,包的位置放在out/target/product/ventana/system/framework和out/target/common/obj/JAVA_LIBRARIES/powersave_intermediates(自己的模块)下,

参考:http://www.eoeandroid.com/thread-34527-1-1.html

分享到:
评论

相关推荐

    android 生成aar/jar包包含第三方jar包没有第三方jar包怎么办

    里面涉及到一个第三方的包,这时候我生成aar/jar包给对方使用的时候,调用不到第三方包的代码,只可以调用我写的类的代码. 问题 我就去网上去寻找,aar/jar包生成包含第三方等问题.网上也有很多答案,我随便发一个别人的...

    Android 混淆打包不混淆第三方jar包

    Android混淆打包不混淆第三方jar包Android 混淆打包不混淆第三方jar包

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

    本知识点主要探讨如何将Android的Activity打包成jar包,并介绍如何在第三方项目中调用这个jar包内的Activity。 首先,让我们了解jar包在Android开发中的角色。Java Archive(jar)是一种文件格式,用于聚合大量的...

    Android端上传文件的jar包

    而“Android端上传文件的jar包”则可能是一个包含了实现此类功能的预编译Java类库,方便开发者快速集成到自己的项目中。 这个jar包可能包含以下关键知识点: 1. **网络请求库**:上传文件通常需要一个网络请求库来...

    maven批量导入第三方jar包至本地库工具

    然而,有时候我们可能需要使用一些不在中央仓库中的第三方库,这就需要我们将这些jar包手动导入到Maven的本地库。"maven批量导入第三方jar包至本地库工具"就是为了解决这个问题而设计的。 首先,我们需要理解Maven...

    android工程正确导入jar包

    ### Android工程正确导入jar包的方法 ...通过以上步骤,开发者可以确保正确地将jar包导入Android项目,并且能够顺利地将这些库打包到最终的APK文件中。这不仅能提高开发效率,还能保证应用程序的稳定性和兼容性。

    Qt on Android调用Jar包

    在Qt on Android的上下文中,我们可以使用JNI来调用Java代码,这些代码可能封装在.jar文件中,如第三方库。 步骤1:准备Java层 创建一个Java类,该类将作为与.jar包交互的桥梁。这个类需要继承自`java.lang.Object`...

    exe4j打包(包含第三方jar包)

    1. 确保所有依赖的jar包都已添加到类路径中,否则程序运行时可能会出现找不到类的错误。 2. 考虑到版权问题,某些第三方库可能不允许打包在可执行文件中。在使用前请查阅相关许可协议。 3. 对于大型项目,可能需要...

    Android.mk引入第三方jar包和so库文件的方法

    本文档会详细介绍如何在Android.mk中引入第三方的jar包和so库文件。 当需要在Android.mk中引入第三方jar包时,通常有几种方法,包括使用LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES变量和LOCAL_STATIC_JAVA_LIBRARIES...

    Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题) - 夏安明的博客专栏 - 博客频道 - CSDN.NET

    Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题) - 夏安明的博客专栏 - 博客频道 - CSDN.NET

    第三方SDK的Jar包在Delphi XE5中的引入

    "第三方SDK的Jar包在Delphi XE5中的引入" Delphi XE5 是一个功能强大的集成开发环境,支持多种编程语言,包括 Object Pascal、C++、Java 等。然而,在 Delphi XE5 中引入第三方 SDK 的 Jar 包却是一个棘手的问题。...

    android使用第三方jar.docx

    在 Android 开发中,引入第三方 jar 包是非常常见的操作。以下是关于 android 使用第三方 jar 包的详细知识点。 方法 1:Eclipse 下引入第三方 jar 包 在 Eclipse 中,右键点击工程,然后选择 Build Path,接着...

    Android将Activity 或者说Library打成jar包供第三方调用(解决资源文件不能打包的问题)

    在Android开发中,有时我们需要将一个特定的Activity或者整个Library模块打包成jar文件,以便于第三方应用能够方便地调用。然而,Android的资源文件(如布局、图片、字符串等)不能直接包含在jar包中,这给打包过程...

    Android Studio 导入第三方库中so文件的导入方法

    然而,在使用 Android Studio 时,需要将第三方库中的 so 文件导入到项目中,以便使用这些库提供的功能。下面将详细介绍如何在 Android Studio 中导入第三方库中的 so 文件。 首先,需要确保 Android Studio 中已经...

    解决Android studio 的Glide 4.1.0第三方jar包如何导入libs目录

    首先,相去github的官网下载这个jar包,下载任意一个即可,注意:你的网络可能会被墙,你可以换成手机的热点去下载,会快很多。这是下载链接,挑选一个下载即可 下载后放在哪里都可以,毕竟这东西可以直接复制进去你...

    android如何增加第三方so和jar

    SO 文件和 JAR 文件是 Android 应用程序中常用的第三方库,用于提供特殊的功能和服务。今天,我们将探讨如何在 Android 平台上增加第三方 SO 和 JAR。 aumentar SO 文件 在 Android 平台上,增加第三方 SO 文件...

    获取apk包名的ant等jar包

    在Android开发过程中,有时我们需要获取APK包的包名,这在自动化构建、逆向工程或者二次打包时尤其重要。标题提到的“获取apk包名的ant等jar包”主要涉及两个工具:Ant和Apktool,它们都是Java库,以JAR文件形式存在...

    Android Studio如何引用第三方库

    无论我们使用哪种方法,Android Studio 都会将第三方库添加到项目中,以便我们可以在开发中使用这些库。这两种方法都可以帮助我们快速地引用第三方库,提高开发效率。 同时,在引用第三方库时,我们需要注意依赖项...

    apk文件中添加jar文件

    在Android应用开发中,APK文件是应用程序的可分发格式,它包含了代码、资源、库文件等。有时候,开发者可能需要将外部的JAR库文件整合到APK中,以便利用这些库提供的功能。本篇文章将详细讲解如何在APK文件中添加JAR...

Global site tag (gtag.js) - Google Analytics