Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 设计支持库v22.2“;意外的顶级异常”;_Android_Gradle_Android Support Library_Build.gradle_Android Design Library - Fatal编程技术网

Android 设计支持库v22.2“;意外的顶级异常”;

Android 设计支持库v22.2“;意外的顶级异常”;,android,gradle,android-support-library,build.gradle,android-design-library,Android,Gradle,Android Support Library,Build.gradle,Android Design Library,我决定使用谷歌刚刚在他们的支持设计库中发布的一些很酷的东西。当我导入库以及将项目与Gradle文件同步时,Everythyng运行正常。但是当我编译这个项目时,它给了我一个错误。我不知道我是否有太多的lirbraries,因为在我用设计库替换AppCompat库之前,一切都很顺利 Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.internal.LoggedErrorException:无法运行命令

我决定使用谷歌刚刚在他们的支持设计库中发布的一些很酷的东西。当我导入库以及将项目与Gradle文件同步时,Everythyng运行正常。但是当我编译这个项目时,它给了我一个错误。我不知道我是否有太多的lirbraries,因为在我用设计库替换AppCompat库之前,一切都很顺利

Error:Execution failed for task ':app:dexDebug'.
com.android.ide.common.internal.LoggedErrorException:无法运行命令: /Users/stanete/Library/Android/sdk/build tools/22.0.1/dx--dex--output/Users/stanete/Workspace/CervezaYa/CervezaYa/app/build/intermediates/dex/debug--input list=/Users/stanete/Workspace/CervezaYa/app/build/intermediates/tmp/dex/debug/inputList.txt 错误代码: 2. 输出: 意外的顶级异常: com.android.dex.DexIndexOverflowException:方法ID不在[0,0xffff]:65536中 位于com.android.dx.merge.dexmerge$6.updateIndex(dexmerge.java:502) 在com.android.dx.merge.dexmerge$idmerge.mergeSorted(dexmerge.java:277) 位于com.android.dx.merge.dexmerge.mergeMethodId(dexmerge.java:491) 位于com.android.dx.merge.dexmerge.mergeDexes(dexmerge.java:168) 位于com.android.dx.merge.dexmmerge.merge(dexmmerge.java:189) 位于com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) 位于com.android.dx.command.dexer.Main.runMonoDex(Main.java:303) 位于com.android.dx.command.dexer.Main.run(Main.java:246) 位于com.android.dx.command.dexer.Main.Main(Main.java:215) 位于com.android.dx.command.Main.Main(Main.java:106)

这是我的build.gradle文件:

buildscript {
repositories {
    maven { url 'https://maven.fabric.io/public' }
}

dependencies {
    classpath 'io.fabric.tools:gradle:1.19.1'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

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

packagingOptions {
    exclude 'META-INF/services/javax.annotation.processing.Processor'
}
}

repositories {
   mavenCentral()
   jcenter()
   maven { url 'https://maven.fabric.io/public' }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:design:22.2.0'

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

    // Third party custom UI
    compile 'com.github.ksoichiro:android-observablescrollview:1.5.0'
    compile 'com.makeramen:roundedimageview:2.0.1'
    compile 'com.afollestad:material-dialogs:0.7.4.1'
    compile 'com.appyvet:materialrangebar:1.0'

    // Views Injection
    compile 'com.jakewharton:butterknife:6.1.0'

   // Image Processing
   compile 'com.squareup.picasso:picasso:2.5.0'

    // Event bus
    compile 'com.squareup:otto:1.3.6'

    // Best mobile DataBase ever
    compile 'io.realm:realm-android:0.80.3'

    // Dependencies Injection with Dagger
    provided 'com.squareup.dagger:dagger-compiler:1.2.2'
    compile 'com.squareup.dagger:dagger:1.2.2'
    // Network
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
    compile 'com.squareup.okhttp:okhttp:2.0.0'

    // Fonts
    compile 'uk.co.chrisjenx:calligraphy:2.1.0'

    // Smart location
   compile('io.nlopez.smartlocation:library:3.0.10') {
        transitive = false
   }
   // Facebook SDK
    compile 'com.facebook.android:facebook-android-sdk:3.21.1'
    compile files('libs/simple.facebook-2.2.jar')


    // Crashlytics
    compile('com.crashlytics.sdk.android:crashlytics:2.2.4@aar') {
        transitive = true;
    }
}

这意味着你的项目已经达到了极限。 阅读:

您需要启用multidex,您可以通过以下方式:

defaultConfig {
    ...
    multiDexEnabled true
}

dependencies {
    ...
    compile 'com.android.support:multidex:1.0.0'
}

使用AndroidManifest.xml扩展应用程序类,并按照链接本身中的说明编辑AndroidManifest.xml。

我也遇到了同样的问题,因为正如谷歌所说:

如果应用程序中的方法引用数超过65K限制,则应用程序可能无法编译

所以你已经超过了65k的限制

以下是多种解决方案:

  • 启用Proguard
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
        debug {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    
    构建类型{
    释放{
    minifyEnabled true
    真的吗
    proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard rules.pro'
    }
    调试{
    minifyEnabled true
    真的吗
    proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard rules.pro'
    }
    }
  • 使用multidex,只需添加:
    debug {
        multiDexEnabled true
    }
    
    调试{
    多索引启用真
    }
  • 只需删除您并不真正需要的依赖项

  • 添加multidexEnabled是否会影响其他内容?启用multidexEnabled时没有遇到任何问题,我想应该不会。