zoukankan      html  css  js  c++  java
  • Android工程方法数超过65535的解决办法

    • Error:Execution failed for task ':ttt:transformClassesWithDexForDebug'.
      com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

      很不幸,今天被我遇到了,集成了一个Udesk客服功能,导入它的moudle,里面乱七八糟导入了一大堆第三方。作为一个第三方客服,你这样真的好么?

    解决方案

    1. Gradle 配置:app的build.gradle中

        android {  
            defaultConfig {  
            applicationId "com.xxx.xxx"  
            minSdkVersion 14  
            targetSdkVersion 21  
      
            multiDexEnabled true  //加上这句话 
            }  
        }
    2. Gradle 配置:app的build.gradle中

        dependencies {  
            compile 'com.android.support:multidex:1.0.1'  
        }
    3. 自己的Application 类重写方法:

        @Override                           
        protected void attachBaseContext(Context base) {  
            super.attachBaseContext(base);  
            MultiDex.install(this);  
        }

      也可以继承android.support.multidex.MultiDexApplication类,不用重写上面方法

    4. 如果你的应用中包含引用的lirary工程或moudle,需要将预编译设置为false:

       android {  
            // ...  
            dexOptions {  
                preDexLibraries = false  
            }  
       }
    5. 当运行时如果看到如下错误:

      UNEXPECTED TOP-LEVEL ERROR:
      java.lang.OutOfMemoryError: Java heap space

      在dexOptions中有一个字段用来增加java堆内存大小:

        android {  
            // ...  
            dexOptions {  
                javaMaxHeapSize "2g"  
            }  
        }
  • 相关阅读:
    Codeforces Round #609 (Div. 1)
    Codeforces Round #607 (Div. 1)
    Codeforces Round #604 (Div. 1)
    网络流应用
    javaScript遍历数组总结
    JavaScript遍历对象的常见方法
    JS中的可枚举属性与不可枚举属性
    typeScript泛型
    ts中函数重载声明
    ts中的可选参数
  • 原文地址:https://www.cnblogs.com/dongweiq/p/7115972.html
Copyright © 2011-2022 走看看