Debuggable Özniteliği

Hata ayıklamayı mümkün kılmak için Android, Java Hata Ayıklama Tel Protokolü'ne (JDWP) sahiptir. Bu, ADB gibi araçların JVM ile iletişim kurmasına olanak tanıyan bir teknolojidir. Geliştirme sırasında JDWP önemli olsa da, uygulama yayımlanmadan önce devre dışı bırakılmalıdır.

JDWP, bir Android uygulamasında özniteliğin android:debuggable değeriyle yapılandırılabilir. Xamarin.Android'de bu özniteliği ayarlamak için aşağıdaki üç yoldan birini seçin:

AndroidManifest.xml

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

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

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

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

Derleme özniteliği ekleme

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

Özet

hem ve ApplicationAttribute hem de AndroidManifest.xml mevcutsa, içeriğinin AndroidManifest.xml içeriği tarafından ApplicationAttributebelirtilenlere göre öncelik alır.

Hem sınıf özniteliği hem de derleme özniteliği eklerseniz 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 AndroidManifest.xmlApplicationAttribute mevcut değilse, özniteliğin değeri hata ayıklama simgelerinin android:debuggable oluşturulup oluşturulmadığına bağlıdır. Hata ayıklama simgeleri varsa, Xamarin.Android özniteliğini android:debuggabletrue sizin için olarak ayarlar.

Uyarı

özniteliğinin android:debuggable değeri derleme yapılandırmasına bağlı DEĞİlDİr. Yayın derlemelerinin özniteliğinin android:debuggable true olarak ayarlanması mümkündür. Bu değeri ayarlamak için bir öznitelik kullanırsanız, özniteliği bir derleyici yönergesinde sarmalama seçeneğini belirleyebilirsiniz:

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