在一台小型应用上获取.dex 64K错误,该应用在另一台PC上运行良好

时间:2016-08-27 15:52:03

标签: android android-studio dalvik

我最近在一台PC上启动了一个新的Android Studio项目(非常准确:3 Activity s,1 Fragment,在这个阶段都是非常基本的),并将其上传到版本控制系统通过Android Studio(我假设它只会添加必要的文件)。

当我在另一台PC上签出项目时,Android Studio会识别它是一个项目,并提供将其作为一个项目打开。 gradle构建完成,但在尝试在设备或模拟器上运行应用程序时,我遇到了旧问题:

  

错误:.dex文件中的方法引用数不能超过64K。

唯一的依赖是'蓝色光谱颜色选择器',我过去使用过没有问题。我认为它已经构建了一些错误的东西,但考虑到一切都与原始项目相同,我看不出它是怎么回事 - 或者它怎么可能有> 64K方法。

以下是gradle文件:

移动版build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "24.0.1"

    defaultConfig {
        applicationId "com.aetherum.timetableapp"
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    maven {
        url "http://github.com/wada811/Android-Material-Design-Colors/raw/master/repository/"
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.thebluealliance:spectrum:0.6.0'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.google.android.gms:play-services:9.4.0'
    compile 'com.android.support:design:23.4.0'
    compile 'com.android.support:preference-v7:23.2.1'
    compile 'com.android.support:preference-v14:23.2.1'
    compile 'com.wada811:android-material-design-colors:2.0.0'
}

项目build.gradle:

buildscript {

    repositories {
        jcenter()
       maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
        classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        flatDir {
            dirs 'libs'
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

我已经尝试过清理和重建项目,以及从git再次检查它。在这个阶段,作为一个没有经验的开发人员,我没有想法。

2 个答案:

答案 0 :(得分:3)

  

唯一的依赖是'蓝色光谱颜色选择器',

不,您至少有七个依赖项,不包括Vector<ClsReturn> ret = null; ret = ds.ind(coll,uri ); String jsReturn = JSONArray.toJSONString(ret);//output(using simple.JSONArray) --> [{"type":1, "msg":"ERROR"}] JSONArray array = new JSONArray(jsReturn); int i = 0; JSONObject myJsonObject = new JSONObject(); while(i < array.length()){ myJsonObject = array.getJSONObject(i); System.out.println(myJsonObject.getString("txt")); i++; } 中可能包含的任何JAR。

其中一个依赖项是libs/。除非您在Play Services SDK 中使用每个API,否则您将更好地使用更细粒度的依赖项(例如,play-services用于Maps V2),只需提取那些位播放您需要的服务。

顺便说一句,您应该将play-services-maps依赖项更改为23.2.1,因此您的所有Android支持库依赖项都来自同一版本。

答案 1 :(得分:0)

请删除此行代码

compile 'com.google.android.gms:play-services:9.4.0'