2015-06-11 11 views
10

Durante la creazione di un'applicazione Xamarin per Android, dopo aver aggiunto il riferimento al controllo grafico Infragistics e ai servizi Google Play, è stato necessario abilitare la proprietà 'Abilita Multi-Dex' su true (dal l'app ha raggiunto il limite del metodo dex di 65K). Stiamo ottenendo un erroreErrore dopo l'attivazione di Multi-Dex in Xamarin Android

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

Sto usando Xamarin Studio Versione 5.9 (build 431) Xamarin.Android Versione: 5.1.0

Si prega di aiutare a risolvere questo problema in Xamarin .

+0

Avete già guardato attraverso i [doc] (https://developer.android.com/tools/building/multidex.html)? – Andy

+2

Hai lo stesso errore ... Come hai risolto? – Angudroid

+0

Continuavo a leggere la raccomandazione di installare l'SDK Android in una directory non predefinita senza spazi (ad es. C: \ Android), perché la directory predefinita si trova in C: \ Programmi (x86) \ Android che contiene 2 spazi che pasticciano con alcuni demarcazione delle righe di comando di dove terminano gli argomenti della riga di comando. Non ho avuto problemi con la directory predefinita fino a quando non ho attivato il supporto Multi-Dex. – optikos

risposta

-3

Ho avuto lo stesso problema. Per risolverlo devi andare alle proprietà del tuo progetto e nell'opzione Android Options nella confezione disabiliti Multi-Dex. E nell'opzione debugger scegliere Xamarin o non Microsoft. Penso che risolva il tuo problema.

9

Abbiamo avuto lo stesso problema sul nostro server di build e abbiamo dovuto spostare l'SDK di Android in un percorso senza spazi, ad es. C:\android-sdk\...

Ovviamente è necessario aggiornare la variabile di ambiente ANDROID_HOME nel nuovo percorso e impostare i percorsi SDK in Xamarin Studio e Visual Studio.

Questo ha risolto il problema per noi.

-2

Si prega di mettere il vostro SDK in cui è disponibile spazio sufficiente e quindi mettere il vostro file jar o dll lì funzionerà.

0

Sono di fronte a questo problema ogni volta che apporto un aggiornamento che modifica o installa una nuova cartella build-tools. Così ho deciso di archiviare la soluzione qui per me stesso e per chi potrebbe trarre vantaggio da questa soluzione.

Alcuni link di bugzilla in altre soluzioni o commenti non sono accessibili da nessuno. La ragione di questo è un problema con l'SDK di Android su macchine Windows. ha bisogno di la seguente correzione da applicare alle macchine server di build e sviluppatori:

  1. La correzione è quello di regolare il mainDexClasses.bat nel SDK di Android. Cerca questo file e applica la correzione a tutte le istanze. La prima cosa è individuare la cartella android-sdk e sub build-tools. Il mio percorso è ad esempio C: \ Users \ YOURUSERNAME \ AppData \ Local \ Android \ Android-sdk \ build-tools \ controllare all'interno delle cartelle denominate con il numero di versione come xx.xx (ad es. 24.0.1)
  2. Quindi all'interno del mainDexClasses.bat file di individuare il seguente blocco di testo:

se uscita definita goto reindirizzare
chiamata "% java_exe%" -Djava.ext.dirs = "% frameworkdir%" com.android.multidex.MainDexListBuilder "% % disableKeepAnnotated " "% tmpJar%" "% params%"
goto afterClassReferenceListBuilder
: reindirizzare chiamata "% java_exe%" -Djava.ext.dirs = "% frameworkdir%" com.android.multidex.MainDexListBuilder" % disableKeepAnnotated % ""% tmpJar% ""% params% "1>"% output% "
: afterClassReferenceListBuilder

e sostituirlo con:

SET params =% params: '=%
se uscita definita goto reindirizzare
chiamata "% java_exe%" -Djava.ext.dirs = "% frameworkdir%" com. android.multidex.MainDexListBuilder% disableKeepAnnotated% "% tmpJar%" % params%
goto afterClassReferenceListBuilder
: reindirizzare chiamata "% java_exe%" -Djava.ext.dirs = "% frameworkdir%" com.android.multidex.MainDexListBuilder % disableKeepAnnotated% "% tmpJar%"% params% 1> "% output%"
: afterClassReferenceListBuilder

  1. Pulire e ricostruire.
+0

Questo non è il mio problema soving .. Ti ha aiutato? –

+0

Sì, per i miei colleghi e per me ha funzionato. –

+0

questo non ha funzionato neanche per me – thumbmunkeys

2

Per coloro che non vogliono cambiare la posizione attuale SDK di Android più ANDROID_HOME variabile ENV, un collegamento semplice è sufficiente:

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