Pytanie Błąd po włączeniu funkcji Multi-Dex w Xamarin Android


Podczas tworzenia aplikacji Xamarin dla systemu Android, po dodaniu odwołania do kontrolki Infragistics Chart i usług Google Play, musieliśmy włączyć właściwość "Włącz Multi-Dex", aby true (Ponieważ aplikacja osiągnęła limit metody dex 65K). Otrzymujemy błąd

..\CREATEMULTIDEXMAINDEXCLASSLIST: Error: Expecting class path
separator ';' before
'\Android\android-sdk\build-tools\21.1.1\lib\shrinkedAndroid.jar' in
argument number 8

ja używam Xamarin Studio wersja 5.9 (kompilacja 431) Xamarin.Android Wersja: 5.1.0

Pomóż rozwiązać ten problem w Xamarin.


11
2018-06-11 09:36


pochodzenie


Czy już przejrzałeś docs? - Andy
Mam ten sam błąd ... Jak to naprawiłeś? - Angudroid
Ciągle czytałem zalecenie, aby zainstalować zestaw SDK do Androida w katalogu bez spacji (np. C: \ Android), ponieważ domyślny katalog znajduje się w C: \ Program Files (x86) \ Android, który zawiera 2 spacje, które zawierają trochę polecenia rozróżnianie linii gdzie kończą się argumenty wiersza poleceń. Nie miałem problemów z domyślnym katalogiem, dopóki nie włączyłem obsługi Multi-Dex. - optikos


Odpowiedzi:


Ten sam problem wystąpił na naszym serwerze budowania i musieliśmy przenieść zestaw SDK systemu Android do ścieżki bez spacji, np. C:\android-sdk\...

Oczywiście musieliśmy zaktualizować ANDROID_HOME Zmienna środowiskowa do nowej ścieżki i ustaw ścieżki SDK w Xamarin Studio i Visual Studio.

To rozwiązało problem dla nas.


10
2018-01-20 16:22





Dla tych, którzy nie chcą zmieniać rzeczywistej lokalizacji Androida SDK oraz zmiennej env ANDROID_HOME, wystarczy prosty link:

mklink /D "C:\android-sdk" "C:\Program Files (x86)\Android\android-sdk"

3
2018-05-17 05:16





W celu późniejszego wykorzystania, istnieje również błąd, jeśli zainstalowany jest JDK 1.8.

Zobacz ten wątek https://bugzilla.xamarin.com/show_bug.cgi?id=44013

Niestety rzeczywisty błąd jest niedostępny dla ogółu społeczeństwa .. https://bugzilla.xamarin.com/show_bug.cgi?id=42669


1
2017-11-07 22:28





Mam do czynienia z tym problemem za każdym razem, gdy robię aktualizację, która zmienia lub instaluje nowy folder narzędzi do kompilacji. Postanowiłem więc przechowywać rozwiązanie tutaj dla siebie i dla kogo mógłbym skorzystać z tego rozwiązania.

Niektóre linki do bugzilli w innych rozwiązaniach lub komentarzach nie są dostępne od nikogo. Powodem tego jest problem z zestawem SDK systemu Android na komputerach z systemem Windows. Poniższa poprawka musi być zastosowana do serwera budowania i deweloperów:

  1. Poprawka polega na dostosowaniu mainDexClasses.bat w pakiecie Android SDK. Wyszukaj ten plik i zastosuj poprawkę do wszystkich instancji. Pierwszą rzeczą jest zlokalizowanie folderu android-sdk i sub build-tools. Moja ścieżka jest na przykład C: \ Users \ YOURUSERNAME \ AppData \ Local \ Android \ android-sdk \ build-tools \ sprawdź wewnątrz folderów o nazwie z numerem wersji, jak xx.x.x (np. 24.0.1)
  2. Więc wewnątrz mainDexClasses.bat plik znajdź następujący blok tekstu:

jeśli DEFINED wyjście przekierowanie goto
wywołaj "% java_exe%" -Djava.ext.dirs = "% frameworkdir%" com.android.multidex.MainDexListBuilder "% disableKeepAnnotated%" "% tmpJar%" "% params%"
goto afterClassReferenceListBuilder
:przeadresować wywołaj "% java_exe%" -Djava.ext.dirs = "% frameworkdir%" com.android.multidex.MainDexListBuilder "% disableKeepAnnotated%" "% tmpJar%" "% params%" 1> "% output%"
: afterClassReferenceListBuilder

I zamień na:

Parametry SET =% params: '=%
jeśli DEFINED wyjście przekierowanie goto
wywołaj "% java_exe%" -Djava.ext.dirs = "% frameworkdir%" com.android.multidex.MainDexListBuilder% disableKeepAnnotated% "% tmpJar%"% params%
goto afterClassReferenceListBuilder
:przeadresować wywołaj "% java_exe%" -Djava.ext.dirs = "% frameworkdir%" com.android.multidex.MainDexListBuilder% disableKeepAnnotated% "% tmpJar%"% params% 1> "% output%"
: afterClassReferenceListBuilder

  1. Oczyść i zbuduj ponownie.

0
2017-11-11 17:11



To nie jest mój problem ... Czy to ci pomogło? - Sankar ganesh
Tak, dla moich kolegów i dla mnie to zadziałało. - Daniele D.
to też nie działało dla mnie - thumbmunkeys


Proszę umieścić swój SDK w miejscu, gdzie jest dostępna Wystarczająca ilość miejsca, a następnie umieścić plik jar lub dll tam zadziała.


-2
2017-09-08 10:34





Miałem ten sam problem. Aby go rozwiązać, musisz przejść do właściwości twojego projektu i opcji Android Options w opakowaniu wyłączasz Multi-Dex. I w opcji debuggera wybierz Xamarin albo nie Microsoft. Myślę, że to rozwiązuje twój problem.


-3
2017-07-13 16:59