Wiele plików dex definiują Landroid / support / v4 / accessibilityservice/AccessibilityServiceInfoCompat

Jeśli uruchamiam gradle assembleDebug z linii poleceń, nagle pojawia się błąd:

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.util.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:592)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:550)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:531)
    at com.android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.java:168)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:186)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:300)
    at com.android.dx.command.dexer.Main.run(Main.java:232)
    at com.android.dx.command.dexer.Main.main(Main.java:174)
    at com.android.dx.command.Main.main(Main.java:91)

Jeśli grep dla v4 widzę dwa pliki w moim folderze budowania.

Binary file build/pre-dexed/debug/support-v4-19.0.0-2ba5fdd60a6c3836b3104a863fe42897da1fa9d1.jar matches
Binary file build/pre-dexed/debug/support-v4-r7-227d905d79b23b20866531d4f700446c040a2ccb.jar matches

Mój plik gradle zawiera tylko tę bibliotekę wsparcia:

compile 'com.android.support:support-v13:19.0.0'

Jestem zdumiony, jak biblioteka r7 jest w jakiś sposób włączona. Uruchomiłem gradle clean i zawsze pojawia się tam, gdy ponownie włączam.

Jeśli grep dla r7 wewnątrz katalogu budowania, widzę go w pliku:

Binary file build/exploded-bundles/ComGoogleAndroidGmsPlayServices4030.aar/classes.jar matches

If I don ' t include v13, potem inne rzeczy się nie kompilują.

Ale czy v13 nie zawiera biblioteki wsparcia dla v4?

Czy jest to niezgodność pomiędzy pakietem AAR usług odtwarzania A biblioteką v13?

Wziąłem plik gradle z gradleplease.appspot.com.

Usunięcie usług odtwarzania nie naprawia tego; ten sam błąd.

Moje zależności wewnątrz build."gradle": {]}

 dependencies {


 // Google Play Services
//compile 'com.google.android.gms:play-services:4.0.30'

// Support Libraries
//compile 'com.android.support:support-v4:19.0.0'
///compile 'com.android.support:appcompat-v7:19.0.0'
//compile 'com.android.support:gridlayout-v7:19.0.0'
compile 'com.android.support:support-v13:19.0.0'
compile 'org.eclipse.mylyn.github:org.eclipse.egit.github.core:2.1.5'
compile 'commons-codec:commons-codec:1.9'
compile 'com.madgag:markdownj-core:0.4.1'
compile 'com.wu-man:android-oauth-client:0.0.2'
compile 'com.google.http-client:google-http-client-jackson2:1.17.0-rc'
compile 'org.apache.commons:commons-lang3:3.2'
compile 'com.google.code.gson:gson:2.2.4'
}
Author: CommonsWare, 2014-01-08

25 answers

Run gradle -q dependencies (lub gradle -q :projectName:dependencies) aby wygenerować raport zależności. Powinieneś zobaczyć skąd pochodzi r7, np.:

compile - Classpath for compiling the main sources.
+--- com.commonsware.cwac:camera-v9:0.5.4
|    +--- com.actionbarsherlock:actionbarsherlock:4.4.0
|    |    \--- com.google.android:support-v4:r7
|    +--- com.commonsware.cwac:camera:0.5.4
|    \--- com.android.support:support-v4:18.0.+ -> 18.0.0
\--- com.android.support:support-v4:18.0.+ -> 18.0.0

Następnie użyj dyrektywy exclude, aby zablokować tę zależność. W moim przypadku pochodzi z mojej biblioteki CWAC-Camera, więc używam:

dependencies {
    compile('com.commonsware.cwac:camera-v9:0.5.4') {
      exclude module: 'support-v4'
    }

    compile 'com.android.support:support-v4:18.0.+'
}

(gdzie drugie compile stwierdzenie wskazuje, jakiej wersji faktycznie chcesz)

To powinno wyjaśnić sprawę, ponieważ zobaczysz, czy uruchomisz raport zależności ponownie:

compile - Classpath for compiling the main sources.
+--- com.commonsware.cwac:camera-v9:0.5.4
|    +--- com.actionbarsherlock:actionbarsherlock:4.4.0
|    \--- com.commonsware.cwac:camera:0.5.4
\--- com.android.support:support-v4:18.0.+ -> 18.0.0
 291
Author: CommonsWare,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-17 16:35:00

Rozwiązałem podobny błąd dodając następujący fragment kodu do mojego build.gradle Plik wewnątrz bloku Androida.

android {
    dexOptions {
        preDexLibraries = false
    }
}
 120
Author: mike.tihonchik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-21 00:26:24

Również zauważyć, że możesz zobaczyć swoje zależności Androida, przechodząc do widoku Android Studio Gradle i wybierając cel "androidDependencies".

Jeszcze jedna wskazówka: miałem ten problem, dopóki nie usunąłem lib wsparcia v4 z folderu libs zarówno w projekcie, jak i powiązanych projektach modułów / bibliotek.

 33
Author: edsappfactory.com,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-30 15:20:46

Ponieważ obraz jest wart tysiąca słów

Aby łatwiej i szybciej wykonać to zadanie z początkujących jak ja. to są screeny, które pokazują odpowiedź wysłaną przez @edsappfactory.com to mi pomogło:

Najpierw otwórz widok Gradle po prawej stronie Androidstudio, w pozycji aplikacji przejdź do Tasks następnie Android następnie kliknij prawym przyciskiem myszy androidDependencies następnie wybierz Run:

Krok 1

Drugi {[7] } zobaczysz coś tak:

Krok 2

Głównym powodem, dla którego napisałem to, że nie było łatwo wiedzieć, gdzie wykonać gradle zadanie lub polecenia zamieszczone powyżej. Więc to jest miejsce, gdzie można ich również wykluczyć.

Więc, aby wykonać polecenie gradle:

Pierwszy:

pierwszy

Drugi:

drugi

To proste. To wszystko. Dziękuję.
 28
Author: MBH,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-18 09:35:03

Jeśli ktoś dowie się, że odpowiedź z CommonsWare nie może być zastosowana do projektu biblioteki Androida, oto fragment do naprawy

Compile (project ( ': yourrandroidlibrary')) { exclude module: 'support-v13' }

Znajdziesz Problemy

Znaleziono nieobsługiwaną metodę Gradle DSL: 'exclude ()'

Jeśli używasz compile project (': yourrandroidlibrary') { exclude module: 'support-v13' }

Różnice to bransoletka "(" oraz ")" przed "projektem" .

 9
Author: Tony Thompson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:33:28

Zacząłem dostawać ten błąd podczas aktualizacji do ButterKnife 8.5.1. Żadna z pozostałych odpowiedzi nie zadziałała.

Użyłem gradle -q :app:dependencies, aby zobaczyć drzewo, a następnie przejrzałem pliki jar, aż znalazłem konflikt. Konflikt polegał na tym, że zależność butterknife od com.android.support:support-compat:25.1.0 zawiera wersję klasy dostępności, a com.android.support:support-v4:23.1.1 zawiera również klasę.

Rozwiązałem to zmieniając zależność od tego:

compile 'com.jakewharton:butterknife:8.5.1'

Do tego:

compile('com.jakewharton:butterknife:8.5.1') {
    exclude module: 'support-compat'
}

Wydaje się, że nie wpływa Dotychczasowa operacja ButterKnife.

Edit: jest lepsze rozwiązanie, którym było uaktualnienie moich bibliotek wsparcia dla Androida, aby pasowały do ButterKnife:

compile('com.android.support:appcompat-v7:25.2.0')
compile('com.android.support:design:25.2.0')
compile 'com.jakewharton:butterknife:8.5.1'
 9
Author: user3562927,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-22 18:16:05

Miałem ten sam problem i wydaje się, że moja aplikacja miała zbyt wiele metod ze względu na Biblioteki: http://developer.android.com/tools/building/multidex.html

Rozwiązałem przez:

android {
   defaultConfig {
   ...
   multiDexEnabled = true
   }
}

Więcej tutaj Error: Execution failed for task': app: dexDebug'. > comcommand zakończony niezerową wartością wyjścia 2

 8
Author: Giannis P,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-15 14:22:31
exclude module: 'support-v4'

Nie działa dla mnie z zależnością od projektu, jedynym sposobem, w jaki mogłem go uruchomić, była następująca składnia:

configurations {
    dependencies {
        compile(project(':Android-SDK')) {
            compile.exclude module: 'support-v4'
        }
    }
}

Gdzie: Android-SDK to nazwa Twojego projektu.

 7
Author: Pellet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-09 06:18:14

Miałem ten sam błąd, ale to dlatego, że niedawno zmieniłem z używania v4 na v13. Więc wszystko, co musiałem zrobić, to wyczyścić projekt.

 6
Author: ashishduh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-26 16:35:02

Miałem ten sam błąd w projekcie. Moja wina polegała na tym, że biblioteka wsparcia została uwzględniona dwa razy: Raz wewnątrz google-play-services lib, a drugi jako samodzielny.

Tak to naprawiłem:

Kiepska Budowa."gradle": {]}
dependencies {
   compile files('libs/android-support-v4.jar') 
   compile files('libs/core-2.2.jar')
   compile files('libs/universal-image-loader-1.8.5-with-sources.jar')
   compile 'com.google.android.gms:play-services:3.2.65'
}
Dobra Budowa."gradle": {]}
dependencies {
   // compile files('libs/android-support-v4.jar')  // not needed 
   compile files('libs/core-2.2.jar')
   compile files('libs/universal-image-loader-1.8.5-with-sources.jar')
   compile 'com.google.android.gms:play-services:3.2.65'
}

Mam nadzieję, że komuś pomoże: -)

 5
Author: voghDev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-09 11:50:38

W moim przypadku problem był spowodowany przez niespójność wersji :

Build tools 25
compileSdk 24
targetSdk 24
Support library 24

Rozwiązanie było proste: zrób wszystko w wersji 25

 3
Author: WindRider,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-20 12:48:49

A podobna metoda rozwiązywania problemów dex

Gradle.Budowa zawierała:

compile files('libs/httpclient-4.2.1.jar')
compile 'org.apache.httpcomponents:httpclient:4.5'
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'

Problem został rozwiązany, gdy usunąłem

compile files('libs/httpclient-4.2.1.jar') 

moja gradle teraz wygląda jak:

apply plugin: 'com.android.application'

android {

compileSdkVersion 24
buildToolsVersion "24.0.3"

defaultConfig {
    applicationId "com.mmm.ll"
    minSdkVersion 16
    targetSdkVersion 24
    useLibrary  'org.apache.http.legacy'
}

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

dependencies {

compile 'com.google.android.gms:play-services:6.1.+'
compile files('libs/PayPalAndroidSDK.jar')
compile files('libs/ksoap2-android-assembly-3.0.0-RC.4-jar-with-dependencies.jar')
compile files('libs/picasso-2.1.1.jar')
compile files('libs/gcm.jar')
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'org.apache.httpcomponents:httpclient:4.5'
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
}

W pliku JAR i skompilowanym projekcie gradle

Więc uważnie poszukaj plików zależności I jar o tych samych klasach.

I usunąć redundancję.
To mi pomogło.

 3
Author: shiny vn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-09 11:53:37

Jeśli zaimportowałeś swój projekt z Eclipse .

1. The select project 
2. Go to File -> **Project Structure**
3. Select app in **module** section on left hand panel
4. Select **Dependency** tab
5. Your able to see jars you have added in eclipse project for v4 and v13.
6. Remove that jar by clicking on minus sign at bottom after selection
7. Click on Plus sign select **Library Dependency** 
8. Choose V4 and V13 if added
9. Press Ok and Clean and Rebuild your project

Scenariusz, z którym miałem do czynienia po zaimportowaniu projektu Eclipse do Android studio.

Mam nadzieję, że to pomoże..
 2
Author: MobileEvangelist,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-18 16:28:23

Używam com.google.android.gms:play-services-analytics:8.3.0 i android-support-v13.jar i nie mógł dostać się exclude module: 'support-v4' do pracy.

Zadziałało dla mnie użycie artefaktu android-support-v13 zamiast pliku android-support-v13.jar.

Czyli zamiast

dependencies {
compile ('com.google.android.gms:play-services-analytics:8.3.0')
compile files('libs/android-support-v13.jar')

}

Użyłem

dependencies {
compile ('com.google.android.gms:play-services-analytics:8.3.0')
compile ('com.google.android:android-support-v13')

}

 2
Author: barry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-14 14:38:20

Usunięcie wszystkich plików z pamięci podręcznej Gradle naprawiło mój problem.

Na Linuksie:

cd ~/.gradle  
rm -R -f *
 2
Author: Yuliia Ashomok,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-09 17:35:28

Jest to irytujący problem, który może zająć trochę czasu, aby dowiedzieć się o przypadku roota. Sposób, w jaki powinieneś postępować, to odpowiedź @ CommonsWare.

Ostatnio spotkałem się z tym problemem i okazało się, że trudno go rozwiązać.

Mój problem polegał na tym, że włączałem bibliotekę w wersji " + " w build.gradle. Najnowsza wersja biblioteki zawierała jeden ze starszych dex i bang.

Wróciłem do starszej wersji biblioteki i ją rozwiązałem.

Dobrze jest uruchomić Androida i zobaczyć co się naprawdę dzieje. Jego również dobrze szukać w folderze kompilacji.

Przede wszystkim Android Studio 2.2 zapewniają w build funkcje śledzenia tego problemu.

Happy Coding Guys

 2
Author: Arun C,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-24 18:19:12

W Android Studio, przejdź do swojej kompilacji.gradle (sprawdź zarówno projekt, jak i budowę modułów.plików gradle) i wyszukuje zduplikowane zależności.

Usuń te, których Twój projekt nie potrzebuje.

 2
Author: KadoLakatt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-09 11:54:57

Usunąłem compile ' com.android.wsparcie: wsparcie-V4: 18.0.+' w zależności i działa

 1
Author: albert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-18 03:29:42

W końcu rozwiązałem modyfikowanie tych atrybutów w pliku MODULE gradle

  1. compileSdkVersion 25
  2. targetSdkVersion 25
  3. compile ' com.android.wsparcie: appcompat-v7:+ '
  4. compile ' com.android.wsparcie: recyclerview-v7:+ '
 0
Author: Val Martinez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-16 18:13:21

Miałem ten sam problem przy dodawaniu react-native-palette do mojego projektu, oto moje drzewo zależności:

./gradlew app:dependencies
+--- project :react-native-palette
|    +--- com.facebook.react:react-native:0.20.+ -> 0.44.2
|    |    +--- javax.inject:javax.inject:1
|    |    +--- com.android.support:appcompat-v7:23.0.1
|    |    |    \--- com.android.support:support-v4:23.0.1
|    |    |         \--- com.android.support:support-annotations:23.0.1 -> 24.2.1
...
|    \--- com.android.support:palette-v7:24.+ -> 24.2.1
|         +--- com.android.support:support-compat:24.2.1
|         |    \--- com.android.support:support-annotations:24.2.1
|         \--- com.android.support:support-core-utils:24.2.1
|              \--- com.android.support:support-compat:24.2.1 (*)
+--- com.android.support:appcompat-v7:23.0.1 (*)
\--- com.facebook.react:react-native:+ -> 0.44.2 (*)

Próbowałem wielu solutonów i nie mogłem tego naprawić, dopóki nie zmieniłem wersji com.android.support:appcompat w android/app/build.gradle, chciałbym, aby to pomogło:

dependencies {
    compile project(':react-native-palette')
    compile project(':react-native-image-picker')
    compile project(':react-native-camera')
    compile fileTree(dir: "libs", include: ["*.jar"])
    // compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.android.support:appcompat-v7:24.2.1"
    compile "com.facebook.react:react-native:+"
}

Wydaje się, że wiele wpisów nie jest dużym problemem, niedopasowanie wersji to

 0
Author: matrixer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-04 14:03:17

Udało się go uruchomić w przypadku konfliktu compile file('...'), zwiększając minSdkVersion do 21 I włączając multidex. Nie jestem pewien, czy jest to najlepsze rozwiązanie, ale jedyny sposób, w jaki mogłem go uruchomić w moim przypadku.

Uwaga: Dla compile file('...') wydaje się, że nie można wstawić klauzuli exclude, aby ta opcja nie była dostępna.

 0
Author: Ben Kleywegt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-16 04:05:46

Miałem ten sam problem i moim rozwiązaniem jest zmiana wersji wsparcia '27.+"(27.1.0) do "27.0.1"

 0
Author: Mingyong Gu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-28 08:16:14

Miałem ten sam problem. W moim projekcie miałem następujące zależności:

  • appcompat-v7
  • Android-support-v13

Z powodów starszych, appcompat został pobrany z Google Maven repo, podczas gdy android-wsparcie było lokalne .słoik.

Kiedy zorientowałem się o tym i zamieniłem to lokalne odniesienie na odniesienie Mavena, po prostu rozwiązało to mój problem z kompilacją.

Oto różnica w mojej aplikacji / kompilacji."gradle": {]}

Tutaj wpisz opis obrazka

 0
Author: kall2sollies,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-14 11:23:41

Rozwiązałem wszystkie moje problemy, dodając to do projektu.właściwości

cordova.system.library.7=com.android.support:appcompat-v7:27.1.0
 0
Author: eatmeimadanish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-25 18:20:02

Otrzymał następujący błąd

Wykonanie nie powiodło się dla Zadania ':app:transformDexArchiveWithDexMergerfordebug'.

Kom.android.buduj.api.transformacja.TransformException: com.android.dex.DexException: wiele plików dex definiuje Landroid/support/constraint / ConstraintSet$1

Fix: przejdź do Build - > Clean Project

 0
Author: Ragunath CR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-22 20:28:56