Partager via


Attribut débogable

Pour permettre le débogage, Android prend en charge Java Debug Wire Protocol (JDWP). Cette technologie permet à des outils tels qu’ADB de communiquer avec une machine virtuelle Java. Bien que JDWP soit important pendant le développement, il doit être désactivé avant la publication de l’application.

JDWP peut être configuré par la valeur de l’attribut android:debuggable dans une application Android. Choisissez l’une des trois façons suivantes de définir cet attribut dans Xamarin.Android :

AndroidManifest.xml

Créez ou ouvrez AndroidManifext.xml un fichier, puis définissez l’attribut android:debuggable à cet emplacement. Veillez à ne pas expédier votre build de version avec le débogage activé.

 	<application android:label="@string/app_name"
               android:debuggable="true"
               android:icon="@mipmap/appicon">
    ...
	</application>

Ajouter un attribut de classe Application

Si votre application Xamarin.Android a une classe avec un [Application] attribut, mettez à jour l’attribut sur [Application(Debuggable = true)]. Définissez-le sur false pour qu’il soit désactivé.

Ajouter un attribut d’assembly

Si votre application Xamarin.Android n’a pas encore d’attribut de [Application] classe, ajoutez un attribut [assembly: Application(Debuggable=true)] de niveau assembly dans un fichier c# tel que Properties\AssemblyInfo.cs. Définissez-le sur false pour qu’il soit désactivé.

Résumé

Si AndroidManifest.xml et ApplicationAttribute sont tous deux présents, le contenu de AndroidManifest.xml est prioritaire devant ce qui est spécifié par ApplicationAttribute.

Si vous ajoutez à la fois un attribut de classe et un attribut d’assembly, il y aura une erreur du compilateur :

"Error The "GenerateJavaStubs" task failed unexpectedly.
System.InvalidOperationException: Application cannot have both a type with an [Application] attribute and an [assembly:Application] attribute."

Par défaut, si ni le AndroidManifest.xmlApplicationAttribute n’est présent, la valeur de l’attribut dépend de la android:debuggable génération ou non de symboles de débogage. Si des symboles de débogage sont présents, Xamarin.Android définit l’attribut android:debuggable sur true pour vous.

Avertissement

La valeur de l’attribut android:debuggable ne dépend pas nécessairement de la configuration de build. Il est possible que l’attribut android:debuggable des versions release soit défini sur true. Si vous utilisez un attribut pour définir cette valeur, vous pouvez choisir d’encapsuler l’attribut dans une directive du compilateur :

#if DEBUG
[Application(Debuggable = true)]
#else
[Application(Debuggable = false)]
#endif