Android Hedef Target Android 12 Hatası Çözümü

android:exported needs to be explicitly specified for element <activity#com.embarcadero.firemonkey.FMXNativeActivity>. Apps targeting Android 12 and higher are required to specify an explicit value for android:exported when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.

Bu hata mesajı, Delphi 12.3 ile Android 12 veya üzeri sürümler için uygulama geliştirirken, AndroidManifest.xml dosyanızda bazı activity öğelerinde android:exported niteliğinin eksik olduğunu bildiriyor.

Sorun Nedir?

Android 12 (API 31) itibarıyla, bir Activity, Service veya BroadcastReceiver bileşeni eğer bir intent-filter içeriyorsa, android:exported niteliğinin açıkça tanımlanması zorunludur. Bu nitelik, bileşenin uygulama dışından erişilebilir olup olmadığını belirler.

hatanda belirtilen öğe:

<activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" ...>

Bu aktivite bir intent-filter içerdiği için, artık android:exported özelliğini içermesi gerekiyor.

Ne Yapmalısın?

  1. AndroidManifest.template.xml dosyanı aç.
  2. Aşağıdaki gibi FMXNativeActivity için tanımlı activity öğesini bul:
<activity android:name="com.embarcadero.firemonkey.FMXNativeActivity"
          android:label="@string/app_name"
          android:configChanges="orientation|keyboardHidden|screenSize"
          android:launchMode="singleTop">

Bu satıra android:exported="true" (veya gerektiğinde false) ekle:

<activity android:name="com.embarcadero.firemonkey.FMXNativeActivity"
          android:label="@string/app_name"
          android:configChanges="orientation|keyboardHidden|screenSize"
          android:launchMode="singleTop"
          android:exported="true">

Bu şekilde düzenleme yapıldığında hata ortadan Kalkar