Attributo Debuggable
Per consentire il debug, Android supporta Java Debug Wire Protocol (JDWP). Si tratta di una tecnologia che consente agli strumenti come ADB di comunicare con JVM. Anche se JDWP è importante durante lo sviluppo, deve essere disabilitato prima della pubblicazione dell'applicazione.
JDWP può essere configurato dal valore dell'attributo android:debuggable
in un'applicazione Android. Scegliere uno dei tre modi seguenti per impostare questo attributo in Xamarin.Android:
AndroidManifest.xml
Creare o aprire AndroidManifext.xml
il file e impostare l'attributo android:debuggable
. Prestare particolare attenzione a non spedire la build di versione con il debug abilitato.
<application android:label="@string/app_name"
android:debuggable="true"
android:icon="@mipmap/appicon">
...
</application>
Aggiungere un attributo della classe Application
Se l'app Xamarin.Android ha una classe con un [Application]
attributo , aggiornare l'attributo a [Application(Debuggable = true)]
. Impostarlo su false
per disabilitarlo.
Aggiungere un attributo assembly
Se l'app Xamarin.Android non ha già un [Application]
attributo di classe, aggiungere un attributo [assembly: Application(Debuggable=true)]
a livello di assembly in un file c#, ad esempio . Properties\AssemblyInfo.cs
Impostarlo su false
per disabilitarlo.
Riepilogo
Se sono presenti sia AndroidManifest.xml
che ApplicationAttribute
, i contenuti di AndroidManifest.xml
sono prioritari rispetto a quanto specificato da ApplicationAttribute
.
Se si aggiungono sia un attributo di classe che un attributo assembly, verrà generato un errore del compilatore:
"Error The "GenerateJavaStubs" task failed unexpectedly.
System.InvalidOperationException: Application cannot have both a type with an [Application] attribute and an [assembly:Application] attribute."
Per impostazione predefinita, se né l'oggetto AndroidManifest.xml
né ApplicationAttribute
è presente, il valore dell'attributo android:debuggable
dipende dal fatto che vengano generati o meno simboli di debug. Se sono presenti simboli di debug, Xamarin.Android imposta l'attributo android:debuggable
su true
.
Avviso
Il valore dell'attributo android:debuggable
NON dipende necessariamente dalla configurazione di compilazione. Le build di rilascio possono avere l'attributo android:debuggable
impostato su true. Se si usa un attributo per impostare questo valore, è possibile scegliere di eseguire il wrapping dell'attributo in una direttiva del compilatore:
#if DEBUG
[Application(Debuggable = true)]
#else
[Application(Debuggable = false)]
#endif
Collegamenti correlati
- Debuggable apps in the Android market (App di cui è possibile eseguire il debug in Android Market)