7

C'è un'opzione nelle impostazioni del progetto Android nelle opzioni Android sezione sulla schedaimballaggio che consente di scegliere tra il debugger Xamarin o il debugger di Microsoft. Il debugger Xamarin funziona, ma non è buono come Microsoft. Sfortunatamente ricevo un messaggio di errore quando provo a utilizzare il debugger Microsoft e lo distribuisco su uno degli emulatori di Visual Studio Android.Utilizzando debugger Microsoft con Xamarin Android

Impossibile avviare il debug. Applicazione non debugabile installata sul dispositivo di destinazione. Non è stato possibile trovare il file richiesto '/data/data/My.Application/lib/gdbserver' sul dispositivo. Si prega di installare una versione debuggable.

C'è un modo per far funzionare il debugger di Microsoft?

+0

Per quanto riguarda i miei test precedenti, il debugger di Microsoft non ha mai funzionato con xamarin. –

risposta

3

Il debugger Xamarin può solo eseguire il debug del codice gestito (cioè C#). I breakpoint funzionano solo con il debugger Xamarin se il progetto in fase di debug è un progetto gestito. Non funzionano se il progetto è un'app nativa o una libreria nativa.

Il debugger Microsoft può eseguire il debug solo del codice nativo (cioè C/C++). I punti di interruzione funzionano solo con il debugger Microsoft se il progetto in fase di debug è un'app nativa o una libreria nativa o se è collegato a un processo Android già in esecuzione.

Per ottenere gdbserver nel pacchetto dell'app, è necessario fare riferimento a una libreria di codici nativi dall'app gestita o includerla (con l'azione build impostata su AndroidNativeLibrary). Ho scoperto che è anche possibile aggiungere un collegamento a gdbserver (di nuovo, con l'azione build impostata su AndroidNativeLibrary) da un progetto e utilizzare lo sniffing del percorso per selezionare gdbserver dall'ABI corrispondente. Frammento di file di progetto:

<ItemGroup> 
    <AndroidNativeLibrary Include="$(ANDROID_NDK_ROOT)\prebuilt\android-arm\gdbserver\gdbserver"> 
     <Link>lib\armeabi-v7a\gdbserver</Link> 
    </AndroidNativeLibrary> 
    </ItemGroup> 

Inoltre si prega di vedere my answer-a similar question.

Problemi correlati