android中第三方jar导入报java.lang.NoClassDefFoundError解决办法

            在android中导入第三方jar时,常见的操作有两种:

  ①:右键工程->Build Path->configure build path。再弹出的libraries里,选择 Add ExternalJARs 

  ②:右键工程->Build path->Add Libraries,再在弹出的窗体中选择“User library”,点击“下一步(Next)”,点击“User Libraries”按钮在出现的界面中点击“New..”按钮在弹出的           文本框中自己随便起一个名字,点击“确定”,点击“Add jars”按钮选择第三方jar包

  以上两种方法都可以把地方jar导入到项目中,但是当我们点击"Run As"->"Android Application",通过真机或者模拟器运行时会出现类似一下的异常:

   02-18 15:36:45.934: E/AndroidRuntime(10401): FATAL EXCEPTION: main
   02-18 15:36:45.934: E/AndroidRuntime(10401): java.lang.NoClassDefFoundError: jp.sourceforge.qrcode.QRCodeDecoder
   02-18 15:36:45.934: E/AndroidRuntime(10401):     at com.sjc.camer.CameraDemoActivity$1.onPictureTaken(CameraDemoActivity.java:119)
   02-18 15:36:45.934: E/AndroidRuntime(10401):     at android.hardware.Camera$EventHandler.handleMessage(Camera.java:625)
   02-18 15:36:45.934: E/AndroidRuntime(10401):     at android.os.Handler.dispatchMessage(Handler.java:130)
   02-18 15:36:45.934: E/AndroidRuntime(10401):     at android.os.Looper.loop(SourceFile:351)


    出现此异常的原因是我们只有把第三方的jar引用到了项目工程里面而没有放到apk中,所以正确的方法如下:

        在工程下面建立一个libs文件夹,把需要的第三方jar拷贝到里面。将引用的第三方jar包,添加进工作的build path。接下来(最关键的一部)在/libs 文件夹上右键->Build        Path ->Use as Source Folder。到此java.lang.NoClassDefFoundError异常解决了。但是新的问题又来了,当我们点击"Run As"->"Android Application"时,会在控制台输出 如下类似的错误信息:

UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Ljp/sourceforge/reedsolomon/Galois;
[2013-02-19 15:24:25 - CameraDemo] Dx     at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)

   出现该错误的原因是:把libs弄成了Source Folder.导致里面的类被重复编译?

   解决的办法:在/libs 文件夹上右键->Remove from Build Path,再次编译工程,问题解决了。

   

   


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值