2015-04-14 3 views
6

Привет, Я работаю над проектом, для которого я использую Android Studio. У меня есть настройка всего, но когда я запускаю свой проект, я получаю ниже ошибок. Я не мог решить это в течение последних 2 дней. Что может быть проблемой в моем проекте, вызвавшей эту ошибку?com.android.dex.DexException: несколько файлов dex определяют Landroid/support/annotation/AnimRes;

Пожалуйста, помогите, если кто-нибудь об этом узнает.

приложение build.gradle

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 22 
    buildToolsVersion "21.1.2" 

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

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.0.+' 
    //compile files('libs/android-support-v4.jar') 
    compile 'com.android.support:support-v4:22.0.+' 
    compile 'com.android.support:support-annotations:20.0.0' 
} 

библиотека build.gradle

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 22 
    buildToolsVersion "21.1.2" 

    defaultConfig { 
     minSdkVersion 15 
     targetSdkVersion 22 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 
} 

dependencies { 
    //compile files('libs/android-support-v4.jar') 
    compile 'com.android.support:support-v4:22.0.+' 
    compile 'com.android.support:support-annotations:20.0.0' 
} 

build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.1.0' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

...

UNEXPECTED TOP-LEVEL EXCEPTION: 
    com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes; 
     at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) 
     at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) 
     at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) 
     at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) 
     at com.android.dx.merge.DexMerger.merge(DexMerger.java:189) 
     at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) 
     at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303) 
     at com.android.dx.command.dexer.Main.run(Main.java:246) 
     at com.android.dx.command.dexer.Main.main(Main.java:215) 
     at com.android.dx.command.Main.main(Main.java:106) 
    Error:Execution failed for task ': app:dexDebug'. 

settings.gradle

include ':app' 
include ':multiStateToggleButton' 
+0

Вы можете обмениваться настройками.gradle, где вы связываете оба проекта, а также –

+0

, пожалуйста, обменивайтесь настройками.gradle –

+0

@ inner_class7 Я добавил settings.gradle файл –

ответ

6

Ваша проблема я считаю, что везде, где вы ссылаетесь библиотеки к основному проекту у вас есть та же зависимость между ними для вашей библиотеки поддержки и аннотации.

Если у вас есть проект библиотеки как зависимость в вашем приложении, вам потребуется только зависимость, которая будет помещена в закрытие зависимостей библиотеки.

Проблема в том, что у вас есть два файла dex, потому что есть два файла с тем же именем, потому что они перекрываются в файлах с вашими зависимостями.

Сначала скопируйте модуль в вашей LIBS/папка основного проекта, то,

создать settings.gradle файл в корневом каталоге основного проекта:

include 'app_name', 'library_name' 
project(':LibraryNameGoesHere').projectDir = new File('libs/LibraryNameGoesHere') 

Для build.gradle вашей библиотеки

dependencies { 
    compile files('libs/android-support-v4.jar') 
    compile 'com.android.support:support-v4:22.0.+' 
    compile 'com.android.support:support-annotations:20.0.0' 
} 

Тогда для основного проекта build.gradle

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.0.+' 
    compile project(":libs:LibraryNameGoesHere") 
} 
+0

Я удалил, но все еще имею те же ошибки. –

+1

@Williams попробуйте также удалить ваши аннотации в главном проекте, см. Выше –

+0

Вы просто потрясающие. –

2

Так как для facebook sdk для Android 2.3.3 требуется аннотация lib. Мое приложение настроено для использования Anndoid> 4.x.x, содержащего аннотацию, конфликт был выпущен. Я изменил в mainbest facebbok для работы с Android> 4.x.x и решил проблему.

0

при переносе проекта с затмением в студии, а затем ваш проект нужен новый модуль, добавьте build.gradle, который в модуле добавления зависимостей, как это,

compile 'com.android.support:support-annotations:24.1.1' 
compile 'com.android.support:support-v4:24.1.1' 
//recyclerview 
compile 'com.android.support:cardview-v7:21.0.3' 
compile 'com.android.support:recyclerview-v7:21.0.3' 

Вы могли бы быть см. эту глупую проблему, потому что старый проект включает файл jar, такой как android-support-v4.jar Это дерьмо накладывает компиляцию (вещь), поэтому вы должны удалить *.баночка файл, это дерьмо берет свое отверстие во второй половине дня, так что удачи, мой английский бассейн, fogiven мне пожалуйста

0

Для чего это стоит, я получаю эту ошибку после того, как с помощью Android Studio, чтобы импортировать проект из Eclipse. В /app/build.gradle файле я имел две записи в разделе зависимостей, это выглядело как этот

dependencies { 
    compile files('libs/android-support-v13.jar') 
    compile files('libs/android-support-v4.jar') 
} 

Я удалил ссылку на v4, как показано ниже

dependencies { 
    compile files('libs/android-support-v13.jar') 
} 

Я очистил проект и был способный построить мой APK. Я не знаю, правильно ли это исправить, но это сработало для меня.

Смежные вопросы