lib工程被引用的时候出现Unable to execute dex: Multiple dex files define。和classNoClassDefFoundError错误

最近在做项目的时候遇到如下的需求:

我们为A方,需要引用B方的jar包。我们开发sdk,之后将sdk以lib工程的形式提供给C方使用。

出现问题如下:

1、 Unable to execute dex: Multiple dex files define Lcn/sdk/Manifest$permission;

      Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcn/kuwo/sms_pay_sdk/Manifest$permission;

之后便在网上查找问题的解决方法(查找前并没有仔细看log的真正含义)

进过查找找到了一个方法,可以正确运行了。找到的方法如下:

在C工程中java build path ----》 order and export 将android private libraries前面的对号取消


之后便运行C工程,此时出现一个问题 ,noclassfound 

此时在又查找资料

查到找如下:android Dependency里面存放的是直接支持的类库,比如导入的第三方支持的源码生成的jar包,而private Libraries里面存放的是android私有的库(libs目录下的)还有第三方支持库中的lib

没用找到类就是jar包没用正确引入,后来找到资料java build path中的order and export要选中private libraries,但是这样的话就回到以前了。这要怎么办呢,只有再找资料了,

http://www.mythroad.net/2013/11/05/%E5%B7%B2%E8%A7%A3%E5%86%B3unable-to-execute-dex-multiple-dex-files-define/

这时候又回到前面,看输出的log,应该是permission重复了,之后把A工程中的权限全部删除,之后就可以了

android Dependency里面存放的是直接支持的类库,比如导入的第三方支持的源码生成的jar包,而private Libraries里面存放的是android私有的库(libs目录下的)还有第三方支持库中的lib

以前自己总结了一个将自己的工程作为lib工程被引用的方法

现在又找打一种方式(当然大同小异了)

需求描述和实现:

A工程要要作为Jar被引用,在A工程开发完毕后选为 is library。之后建立B工程B工程的包名和A要一样。将B中的src删除,将A中除了src外的其他都拷贝到B中,A中引用的jar和A作为lib生成的jar都要放到B的libs目录下。之后就可以引用B了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值