NoClassDefFoundError okhttp3未编译为dex

时间:2016-05-17 16:46:03

标签: eclipse ant dex multidex okhttp3

当我尝试使用okhttp类时,它会引发异常。

我反编译我的应用,发现没有包含okhttp3类。

我的项目是一个带有okhttp3.2的4.3上的Eclipse项目目标,它有超过64k的方法问题。我们用ant来编译apk。

为了解决这个问题,我们使用这个解决方案将一些罐放入第二个dex:Dex65536

我已经尝试将okhttp3放在主dex或第二个dex中,两者都没有编译成dex。

我添加了okio

我尝试构建路径

我将jdk更新为1.8和adt v23

我尝试使用4.4 sdk

  

274:E / AndroidRuntime(25221):致命异常:主要   05-17 22:47:40.274:E / AndroidRuntime(25221):进程:com.sanweidu.TddPay,PID:25221   05-17 22:47:40.274:E / AndroidRuntime(25221):java.lang.NoClassDefFoundError:okhttp3.OkHttpClient $ Builder   05-17 22:47:40.274:E / AndroidRuntime(25221):at com.sanweidu.TddPay.util.http.HttpUtil。(HttpUtil.java:65)   05-17 22:47:40.274:E / AndroidRuntime(25221):at com.sanweidu.TddPay.util.http.HttpUtil。(HttpUtil.java:43)   05-17 22:47:40.274:E / AndroidRuntime(25221):at com.sanweidu.TddPay.util.http.HttpUtil $ HttpUtilHolder。(HttpUtil.java:53)   05-17 22:47:40.274:E / AndroidRuntime(25221):at com.sanweidu.TddPay.util.http.HttpUtil.getInstance(HttpUtil.java:61)   05-17 22:47:40.274:E / AndroidRuntime(25221):at com.sanweidu.TddPay.model.social.LiveInfoModel.requestLiveInfo(LiveInfoModel.java:18)   05-17 22:47:40.274:E / AndroidRuntime(25221):at com.sanweidu.TddPay.presenter.social.LiveInfoPresenter.requestLiveInfo(LiveInfoPresenter.java:27)   05-17 22:47:40.274:E / AndroidRuntime(25221):at com.sanweidu.TddPay.activity.main.SixthFragment.onResume(SixthFragment.java:70)   05-17 22:47:40.274:E / AndroidRuntime(25221):在android.support.v4.app.Fragment.performResume(Fragment.java:1521)   05-17 22:47:40.274:E / AndroidRuntime(25221):在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:963)   05-17 22:47:40.274:E / AndroidRuntime(25221):在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)   05-17 22:47:40.274:E / AndroidRuntime(25221):在android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)   05-17 22:47:40.274:E / AndroidRuntime(25221):在android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460)

1 个答案:

答案 0 :(得分:0)

查看"订单和导出"选项卡并确保选中所需库(okhttp3)旁边的复选框以确保它已合并到二进制文件中。