Próbuję stworzyć 2 wersje aplikacji na Androida (darmowe / płatne). Mam bibliotekę Androida, która zawiera pliki wspólne dla obu. Utworzyłem nowy projekt na Androida i próbuję użyć biblioteki, ale pojawia się następujący błąd:
Found 2 versions of android-support-v4.jar in the dependency list,
but not all the versions are identical (check is based on SHA-1 only at this time).
All versions of the libraries must be the same at this time.
Versions found are:
Path: /Users/Zaheer/Developer/App Free/libs/android-support-v4.jar
Length: 349252
SHA-1: 612846c9857077a039b533718f72db3bc041d389
Path: /Users/Zaheer/Developer/App Library/libs/android-support-v4.jar
Length: 337562
SHA-1: 27c24d26e4c5d57976e6926367985548678e913c
Jakieś pomysły, jak to rozwiązać? Bawiłem się ścieżką kompilacji, która kończy się niepowodzeniem.
Odpowiedzi:
Usuń jeden.
Krok 1: Cofnij to wszystko. Jeśli masz problem ze ścieżką kompilacji, na R16 lub wyższej wersji wtyczki ADT dla Eclipse, robisz to źle.
Krok 2: Wybierz jedną z tych dwóch wersji pliku JAR lub wybierz tę z obszaru „dodatki” instalacji SDK.
Krok # 3: Umieść odpowiedni JAR
App Library
.Krok # 4: Usuń ten z
App Free
, ponieważ odbierze ten plik JAR zApp Library
.Zamiast tego możesz mieć ten sam rzeczywisty plik JAR w obu miejscach (
App Free
iApp Library
), chociaż zajmuje to dodatkowe miejsce bez powodu.źródło
android-support-v4.jar
najnowszej wersji jest to ta w instalacji SDK.android-support-v4.jar
wersję z SDK i kopiuję ją do wszystkich projektów biblioteki (plus usuwam ten z SDK).źródło
Powyższe rozwiązania w większości rozwiązują problem. po zastosowaniu tych rozwiązań problem nadal występuje. Następnie
Mam nadzieję, że to rozwiąże twój problem, tak jak rozwiązał mój problem.
źródło
Istnieje kilka scenariuszy, w których masz wiele projektów bibliotek, które mają ścieżki
android-support-v4.jar
w ichlibs
i kompilacji, a projekt ma zależność od obu z nich. Załóżmy na przykład, że w moim przypadku mam następujące projekty biblioteczne w moim obszarze roboczym,Oba te projekty są niezależne, a mój
project.properties
wygląd wygląda następująco,# Project target. target=android-17 android.library.reference.1=../libfacebook android.library.reference.2=../libsherlockactionbar
Kiedy buduję projekt, pojawia się problem z niezgodnością jar z powielonymi odwołaniami do dwóch kopii tego samego pliku. To, co zrobiłem, aby rozwiązać ten problem, jest trochę podstępem. Utworzyłem nowy projekt biblioteki nazwany
libcommons
jako nadrzędny dla wszystkich innych projektów biblioteki w moim obszarze roboczym, w tymlibfacebook
ilibsherlockactionbar
. Potem usunięto bibliotekę wsparcie od wszystkich innych projektów i przechowywane tylko jedna kopia wewnątrzlibcommons
„s libs folderu. Następnie dodałemlibcommons
jako odniesienie do wszystkich moich innych projektów bibliotecznych. Po wyczyszczeniu mojego miejsca pracy wszystko działa jak urok.źródło
To bardziej elegancka poprawka niż usuwanie i dodawanie plików!
Musisz tylko:
Biblioteka obsługi Androida zostanie wówczas zsynchronizowana (:
źródło
BARDZO PROSTE ROZWIĄZANIE
Bardzo proste rozwiązanie zadziałało w moim przypadku, po prostu skopiuj ten sam plik jar (android-support-v4.jar) do wszystkich projektów. Nie będzie już konfliktu.
1 Skopiuj plik jar android-support-v4.jar z folderu libs dowolnego projektu.
2 Usuń plik jar android-support-v4.jar z folderu libs drugiego projektu, który już istnieje.
3 Wklej nowo skopiowany plik jar pierwszego projektu do folderu libs drugiego projektu.
Problem z niezgodnością słoików zostanie już rozwiązany.
źródło
Po prostu skopiuj bibliotekę z jednego projektu do drugiego. Może sygnatura czasowa musi być taka sama na obu.
źródło
Rozkład:
źródło
Sprawdź, czy są otwarte dla Ciebie nieistotne projekty, bo tak było w przypadku mnie, wydawało się, że jeden z plików JAR był powiązany z innym projektem, nad którym nie pracowałem, więc właśnie zamknąłem ten projekt, zrobiłem porządek kompilacja projektu, nad którym pracuję i już nie miałem problemu! Mam nadzieję, że to komuś pomoże!
źródło
Użyj tego samego słoika podczas dodawania zewnętrznych słoików w bibliotece i projekcie
źródło
cóż ... to działa u mnie:
Iść do
następnie usuń „android-support-v4.jar”
Następnie
To będzie działać!
źródło
Po prostu miałem ten problem, ale zamiast usunąć konflikt z android-support-v4.jar , po prostu zmieniłem jego nazwę na android-support-v4_PROJECT.jar , co usunęło konflikt.
Jeśli zastanawiasz się, jak zmienić nazwę pliku w Eclipse, wystarczy zaznaczyć plik i nacisnąć F2.
źródło
Musisz tylko mieć dokładnie taką samą sumę kontrolną android-support-v4.jar w każdym swoim projekcie. W tym celu możesz skopiować / wkleić jeden z nich we wszystkich swoich projektach / bibliotekach będących w konflikcie.
Nie ma nic innego do roboty, posprzątaj i ciesz się :)
źródło
Możesz otworzyć 2 projekty w tym samym czasie (oba przy użyciu android-support-v4.jar).
I close 1 project and every thing ok
źródło