Aracılığıyla paylaş


Uygulamamı 5.0'a Xamarin.Forms Nasıl yaparım? geçirebilirsiniz?

Xamarin.Forms 5.0 aşağıdaki hataya neden olan değişiklikleri içerir:

  • Expander Xamarin Topluluk Araç Seti'ne taşındı. Daha fazla bilgi için bkz . Uygulamasından Xamarin.Formstaşınan özellikler.
  • MediaElement Xamarin Topluluk Araç Seti'ne taşındı. Daha fazla bilgi için bkz . Uygulamasından Xamarin.Formstaşınan özellikler.
  • DataPages ve ilişkili projeler öğesinden Xamarin.Formskaldırılmıştır.
  • MasterDetailPage olarak yeniden adlandırıldı FlyoutPage. Benzer şekilde, MasterBehavior sabit listesi olarak yeniden adlandırılmıştır FlyoutLayoutBehavior.
  • iOS'ta kaldırılacak Xamarin.Forms başvurularUIWebView.
  • Visual Studio 2017 desteği kaldırıldı.
  • XFCorePostProcessor.Tasks kaldırıldı. Bu proje, 2,5 uyumluluğunu korumak Xamarin.Forms için IL ekli.

Ayrıca, 5.0 ile Xamarin.Forms oluşturulan Android ve UWP projelerinin güncelleştirilmesi gerekir.

Önemli

Bir uygulamayı 5.0'a Xamarin.Forms güncelleştirirken, NuGet paketine başvuran her projeyi aynı sürüme güncelleştirdiğinizden Xamarin.Forms emin olun.

Android

5.0 ile Xamarin.Forms oluşturulan Android projeleri için AndroidX (Android 10.0) platformunu geliştirme ortamınıza yüklemeniz gerekir. Bu, Android SDK yöneticisi ile gerçekleştirilebilir. AndroidX hakkında daha fazla bilgi için bkz . içinde Xamarin.FormsAndroidX geçişi.

Daha sonra Android projelerinin doğru şekilde derlenebilmek için birkaç güncelleştirme yapılması gerekir.

Minimum TargetFrameworkVersion

Xamarin.Forms 5.0, Android projeleri için en az 10.0 (AndroidX) hedef çerçeve sürümü gerektirir. Hedef çerçeve sürümü Visual Studio'da veya Android .csproj dosyasında ayarlanabilir:

<TargetFrameworkVersion>v10.0</TargetFrameworkVersion>

Bu minimum gereksinim karşılanmazsa bir derleme hatası oluşur:

error XF005: The $(TargetFrameworkVersion) for MyProject.Android (v9.0) is less than the minimum required $(TargetFrameworkVersion) for Xamarin.Forms (10.0). You need to increase the $(TargetFrameworkVersion) for MyProject.Android.

Minimum TargetSDKVersion

AndroidX, Android bildiriminizin 29+ olarak ayarlı targetSdkVersion olmasını gerektirir:

<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" />

Bunun yapılmaması, öğesinin targetSdkVersion olarak ayarlanmasına minSdkVersionneden olur. Buna ek olarak, bazı durumlarda doğru ayarlanamazsa targetSdkVersion bir Android.Views.InflateException üretilecektir:

Android.View.InflateException has been thrown.

Binary XML file line #1 in com.companyname.myproject:layout/toolbar: Binary XML file line #1 in com.companyname.myproject:/layout/toolbar: Error inflating class android.support.v7.widget.Toolbar

Not

Visual Studio 2019'da, hedef çerçeve sürümü v10.0 olarak ayarlandığında Android bildirimi otomatik olarak API 29 belirtecek targetSdkVersion şekilde güncelleştirilir.

AndroidX'e otomatik geçiş

Android projeniz doğrudan bağımlılıklar veya geçişli bağımlılıklar olarak herhangi bir Android destek kitaplığına başvuruyorsa, bu destek kitaplığı bağımlılıkları ve bağlamaları derleme işlemi sırasında AndroidX bağımlılıklarıyla otomatik olarak değiştirilir. Otomatik AndroidX geçişi hakkında daha fazla bilgi için bkz . içinde Xamarin.Formsotomatik geçiş.

AndroidX'e el ile geçiş

Android projenizin Android destek kitaplıklarında doğrudan veya geçişli bağımlılıkları yoksa ancak yine de kod aracılığıyla destek kitaplığı türlerini kullanmaya çalışıyorsa, uygulamanızı AndroidX'e el ile geçirmeniz gerekir. Bu, AndroidX türlerini kullanarak ve özelleştirmediğiniz AXML dosyalarını kaldırarak gerçekleştirilebilir.

İpucu

AndroidX'e el ile geçiş uygulamanız için en hızlı derleme işlemine neden olur.

AndroidX türlerini kullanma

AndroidX, Android destek kitaplıklarının yerini alır ve bu nedenle Android destek kitaplığı türlerine yapılan tüm başvurular AndroidX türlerine yapılan başvurularla değiştirilmelidir.

Bu, deyimlerinizi using ad alanları yerine Android.Support ad alanlarını kullanacak AndroidX şekilde güncelleştirerek gerçekleştirilebilir. Aşağıdaki tabloda, Android destek kitaplıklarından AndroidX'e geçerken yapılan bazı yaygın ad alanı değişiklikleri listelenmiştir:

Android destek kitaplığı ad alanı AndroidX ad alanı
Android.Support.V4.App AndroidX.Core.App
Android.Support.V4.Content AndroidX.Core.Content
Android.Support.V4.App AndroidX.Fragment.App
Android.Support.V7.App AndroidX.AppCompat.App
Android.Support.V7.Widget AndroidX.AppCompat.Widget

Destek kitaplıklarından AndroidX'e sınıf eşlemelerinin tam listesi için bkz . github.com'de AndroidX sınıf eşlemeleri . Destek kitaplıklarından AndroidX'e derleme eşlemelerinin tam listesi için bkz. github.com'de AndroidX derlemeleri

AXML dosyalarını kaldırma

Özelleştirilmiş AXML dosyalarını kullanmaması koşuluyla Android projenizdeki AXML dosyalarını silmeniz gerekir. Silme işleminden sonra aşağıdaki satırlar sınıfınızdan MainActivity kaldırılmalıdır:

TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;

Önemli

Özelleştirilmiş AXML dosyalarına sahip Android projeleri, bu dosyaların AndroidX türlerini kullanması için güncelleştirilmelidir.

UWP

Xamarin.Forms 5.0, UWP projeleri için = 10.0.18362.0 hedef platform sürümünü >önerir. Hedef platform sürümü Visual Studio'da veya UWP .csproj dosyasında ayarlanabilir:

<TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.18362.0</TargetPlatformVersion>

UWP projeniz daha düşük bir hedef platform sürümü kullanıyorsa bir derleme uyarısı üretilir.