Debuggable Özniteliği

Android, hata ayıklamayı mümkün hale etmek için Java Hata Ayıklama Kablo Protokolü'ünü (JDWP) destekler. Bu, ADB gibi araçların bir JVM ile iletişim kurmasına olanak sağlayan bir teknolojidir. JDWP geliştirme sırasında önemlidir ancak uygulama yayımdan önce devre dışı bırakılmıştır.

JDWP, bir Android uygulamasında android:debuggable özniteliğin değerine göre yalıtabilirsiniz. Xamarin.Android'de bu özniteliği ayarlamak için aşağıdaki üç yoldan birini seçin:

AndroidManifest.xml

Dosya oluşturun AndroidManifext.xml veya açın ve android:debuggable özniteliğini orada ayarlayın. Hata ayıklama etkinken yayın derlemenizi göndererek daha fazla dikkat edin.

Uygulama sınıfı özniteliği ekleme

Xamarin.Android uygulamanıza özniteliğine sahip bir sınıf [Application] varsa özniteliğini olarak güncelleştirin. [Application(Debuggable = true)] Devre dışı bırakmak için false olarak ayarlayın.

Derleme özniteliği ekleme

Xamarin.Android uygulamanıza zaten bir sınıf özniteliği yoksa, bir c# dosyasına derleme [Application][assembly: Application(Debuggable=true)] düzeyi özniteliği ekleyin. Devre dışı bırakmak için false olarak ayarlayın.

Özet

hem hem AndroidManifest.xml de ApplicationAttribute varsa, içeriği AndroidManifest.xml tarafından belirtilenler üzerinde öncelik ApplicationAttribute alır.

Hem sınıf özniteliği hem de derleme özniteliği eklersiniz, derleyici hatası olur:

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

Varsayılan olarak , ne de varsa özniteliğinin değeri, hata ayıklama sembollerinin oluşturulıp AndroidManifest.xmlApplicationAttributeandroid:debuggable oluşturulmamasına bağlıdır. Hata ayıklama sembolleri varsa, Xamarin.Android özniteliğini android:debuggable sizin için true olarak ayarlar.

Uyarı

Özniteliğin değeri android:debuggable mutlaka derleme yapılandırmasına bağlı değildir. Yayın derlemeleri özniteliğinin true android:debuggable olarak ayarlanmış olabilir. Bu değeri ayarlamak için bir öznitelik kullanırsanız, özniteliği bir derleyici yönergesinde sarmalayı seçebilirsiniz:

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