开发者社区> 自娱> 正文

[android]android工程引用第三方jar提示找不到相关class的解决方法

简介:
+关注继续查看
使用第三方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,那么请#touch classes.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(自己的模块)下,

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android C++系列:JNI引用管理
在 Native 代码中有时候会接收 Java 传入的引用类型参数,有时候也会通过 NewObject 方法来创建一个 Java 的引用类型变量。在编写 Native 代码时,要注意这个代表 Java 数据结构类型的引用在使用时会被 GC 回收的可能性。
54 0
Android 9.0 支持第三方应用引用系统库(so)
Android 9.0 支持第三方应用引用系统库(so)
163 0
【Android 逆向】IDA 工具使用 ( 函数窗口 Function window | 创建引用图 Xrefs graph to | 创建调用图 Xrefs graph from )
【Android 逆向】IDA 工具使用 ( 函数窗口 Function window | 创建引用图 Xrefs graph to | 创建调用图 Xrefs graph from )
295 0
【Android 安装包优化】开启资源压缩 ( 资源压缩配置 | 启用严格模式的资源引用检查 | 自定义保留/移除资源配置 | 资源压缩效果 )
【Android 安装包优化】开启资源压缩 ( 资源压缩配置 | 启用严格模式的资源引用检查 | 自定义保留/移除资源配置 | 资源压缩效果 )
151 0
【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )(二)
【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )(二)
223 0
【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )(一)
【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )(一)
187 0
【Android 内存优化】Bitmap 内存缓存 ( Bitmap 内存复用 | 弱引用 | 引用队列 | 针对不同 Android 版本开发不同的 Bitmap 复用策略 | 工具类代码 )
【Android 内存优化】Bitmap 内存缓存 ( Bitmap 内存复用 | 弱引用 | 引用队列 | 针对不同 Android 版本开发不同的 Bitmap 复用策略 | 工具类代码 )
217 0
【Android NDK 开发】JNI 引用 ( 弱全局引用 | NewWeakGlobalRef | DeleteWeakGlobalRef )
【Android NDK 开发】JNI 引用 ( 弱全局引用 | NewWeakGlobalRef | DeleteWeakGlobalRef )
105 0
【Android NDK 开发】JNI 引用 ( 全局引用 | NewGlobalRef | DeleteGlobalRef )
【Android NDK 开发】JNI 引用 ( 全局引用 | NewGlobalRef | DeleteGlobalRef )
447 0
【Android NDK 开发】JNI 引用 ( 局部引用 | 局部引用作用域 | 局部引用产生 | 局部引用释放 | 代码示例)
【Android NDK 开发】JNI 引用 ( 局部引用 | 局部引用作用域 | 局部引用产生 | 局部引用释放 | 代码示例)
111 0
【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片
【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片
217 0
【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片(三)
【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片(三)
56 0
【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片(二)
【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片(二)
59 0
android开发,阿里云引用问题
开过一段时间梯子下载gradle,关闭后提示需要引入阿里云安全模式的东西,新创建项目也提示这个东西。请求怎么解决
415 0
安卓开发学习笔记(三):Android Stuidio无法引用Intent来创建对象,出现cannot resolve xxx
笔者在进行安卓开发时,发现自己的代码语法完全没有问题。尤其是创建intent对象的时候,语法完全是正确的,但是Android Stuidio却显示报错,Intent类显示为红色,如图所示:       代码如下所示: 1 Button button2=(Button)findViewById(R.
1187 0
+关注
自娱
阿里巴巴无线客户端性能与安全负责人 Gradle中文文档作者
文章
问答
视频
相关电子书
更多
蚂蚁聚宝Android秒级编译——Freeline
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关镜像