美文网首页
Android工程方法数超过65535,解决办法

Android工程方法数超过65535,解决办法

作者: _Sisyphus | 来源:发表于2017-05-24 16:47 被阅读0次
  • 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

解决方案

  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"  
            }  
        }

相关文章

网友评论

      本文标题:Android工程方法数超过65535,解决办法

      本文链接:https://www.haomeiwen.com/subject/fgjoxxtx.html