面对Dex 65K方法限制错误

时间:2016-02-18 14:55:42

标签: android android-multidex

我在我的应用中收到此错误:

  

java.lang.IllegalArgumentException:方法ID不在[0,0xffff]中:   65536

我知道这是由于单个dex文件中的65K方法限制。所以,我已将multiDexEnable true放入build.gradle。但是现在,我又得到了另一个错误:

  

任务执行失败   ':应用程序:transformClassesWithMultidexlistForSitraRelease'

     
    

java.io.IOException:无法读取[C:\ Program Files \ adt-bundle-windows \ build-tools \ 20.0.0 \ multidex \ shrinkedAndroid.jar]     (没有这样的文件或目录)

  

我该怎么办?

修改

我添加了com.android.support:multidex:1.0.0依赖项,并将App extends Application更改为App extends MultiDexApplication,但仍然无效。

注意:当我删除依赖项com.batch.android:batch-sdk:1.5+时,一切正常。

3 个答案:

答案 0 :(得分:2)

在build.gradle文件中,将buildToolsVersion更新为21.1.0或更高版本。 (您目前使用的是20.0.0)

类似的东西:

using (FileStream fs = new FileStream("Report.html", FileMode.Create, FileAccess.Write))                 
{
    using (StreamWriter w = new StreamWriter(fs, Encoding.UTF8))
    {                               
        w.WriteLine(html); 
    }
}

并确保您的sdk经理是最新的。

更多信息:http://developer.android.com/intl/es/tools/building/multidex.html#mdex-gradle

答案 1 :(得分:0)

您必须从Application延长MultidexApplication课程。 此外,您还需要添加到gradle.build文件compile 'com.android.support:multidex:1.0.0'

答案 2 :(得分:0)

尝试将compile "com.android.support:multidex:1.0.1"添加到build.gradle中的依赖项。我相信你需要这个以及multiDexEnabled true