无法构建apk

时间:2016-07-28 11:12:19

标签: android

我正在研究当前的位置跟踪,但是当我尝试构建apk时,它正在显示错误,而建筑APK.I我没有遇到问题。

错误:.dex文件中的方法引用数不能超过64K。 了解如何在https://developer.android.com/tools/building/multidex.html

解决此问题

错误:任务':app:transformClassesWithDexForDebug'执行失败。

  

com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:org.gradle .process.internal.ExecException:进程'命令'C:\ Program Files \ Java \ jdk1.8.0_101 \ bin \ java.exe''以非零退出值2结束

4 个答案:

答案 0 :(得分:1)

build.gradle添加此行,然后重试:

multiDexEnabled true

答案 1 :(得分:0)

您是否尝试将堆大小调整添加到build.gradle文件中?例如,这会将dexing的最大堆大小设置为4GB,并且它也将启用 multiDexEnabled选项。

android {
    ...
    dexOptions {
        javaMaxHeapSize "4g"
    }

defaultConfig {
        multiDexEnabled true
     }
}

答案 2 :(得分:0)

嗨,我们有两种处理multidex的方法,

我们应该首先在gradle中添加这段代码

defaultConfig {
    applicationId "com.example"
    minSdkVersion 16
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}

dexOptions {
    javaMaxHeapSize "4g"
}  

我们可以在Application类中使用此代码的第二种方式

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

感谢它可能对您有所帮助

答案 3 :(得分:0)

您的问题可以有两种解决方案: 1.在开发位置跟踪应用程序时,您可能已经包含了包含多个库的整个Google Play服务。请尝试在您的gradle文件中包含地图服务,例如

compile 'com.google.android.gms:play-services-maps:8.3.0'
  1. 如果上述方法不起作用,请尝试修改模块级build.gradle文件配置以包含支持库并启用multidex输出,如以下代码所示

    android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"
    
    defaultConfig {
    ...
    minSdkVersion 14
    targetSdkVersion 21
    ...
    
    // Enabling multidex support.
    multiDexEnabled true
    }
    ...
    }
    
    dependencies {
    compile 'com.android.support:multidex:1.0.0'
    }
    
  2. 某些依赖项的方法超过了64k的限制。因此,您必须引入称为“MULTIDEX SUPPORT”的支持。

    http://frogermcs.github.io/MultiDex-solution-for-64k-limit-in-Dalvik/

    Multidex将允许在应用程序中使用任意数量的方法(以及相关的第三方库)。

    即使棒棒糖及以上版本支持应用程序拥有任意数量的方法,pre-lollipop版本仅支持SINGLE DEX。因此,在安装应用程序时必须安装(必需)multidex。这样,您的应用甚至可以在棒棒糖前版本上运行。

    Android Studio project works on Lollipop but does not work on Kitkat

    由于multidex会尝试从dex文件中提取所有资源,这会使你的应用程序变慢一些,但是只要你打开你的应用程序完成这个过程就可以正常工作。 此外,在创建签名的apk后,它不会给您任何问题。