
Syed Waleed
Ausgabe : Sie haben ein APK oder Android App Bundle hochgeladen, das eine Aktivität, einen Aktivitäts-Alias, einen Dienst oder einen Broadcast-Empfänger mit Intent-Filter, aber ohne den Eigenschaftssatz „android:exported“ enthält. Diese Datei kann nicht auf Android 12 oder höher installiert werden. Siehe: developer.android.com/about/versions/12/behavior-changes-12#exported
Meine AndroidManifest.xml-Datei
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.c4life.guardianangel">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
<application
tools:replace="android:label"
android:label="GA"
android:exported="true"
android:icon="@mipmap/ic_launcher">
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="[insert API key here]"/>
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<meta-data
android:name="io.flutter.embedding.android.SplashScreenDrawable"
android:resource="@drawable/launch_background"
/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<service android:name="changjoopark.com.flutter_foreground_plugin.FlutterForegroundService" android:exported="false"/>
<meta-data
android:name="flutterEmbedding"
android:value="2" />
</application>
<uses-sdk
android:targetSdkVersion="30"
tools:overrideLibrary="changjoopark.com.flutter_foreground_plugin" />

MANISH
Gemäß der neuen Richtlinie von Google Wenn Ihre App auf Android 12 oder höher ausgerichtet ist und Aktivitäten, Dienste oder Broadcast-Empfänger enthält, die Intent-Filter verwenden, müssen Sie das Attribut android:exported explizit für diese App-Komponenten deklarieren. Sie können diesen Schritten folgen:
- offen AndroidManifest.xml Datei und unten auswählen Zusammengeführtes Manifest. so was :

- Wenn Sie das zusammengeführte Manifest nicht in der Vorschau anzeigen können, dann in Ihrer build.gradle Dateisatz compileSdkVersion 30 und targetSdkVersion 30 und synchronisieren Sie Ihr Projekt und versuchen Sie jetzt erneut, das zusammengeführte Manifest zu öffnen. Ich hoffe, dass Sie dieses Mal eine ordnungsgemäße Vorschau des zusammengeführten Manifests haben. Aber wenn es keine Vorschau gibt, machen Sie sich keine Sorgen, Sie können immer noch zu einzelnen Manifestdateien aus verschiedenen Bibliotheken von Drittanbietern navigieren, die Sie in Ihrem Projekt verwendet haben.

-
Überprüfen Sie nun alle Aktivitäten, Dienste und Empfänger, die den Intent-Filter verwenden, ohne Android: exportiert Schild. In Ihrer Hauptmanifestdatei können Sie einfach hinzufügen Android: exportiert Eigentum zu Aktivität tag also fügen Sie android:exported=”” hinzu und setzen Sie einen booleschen Wert in diese Anführungszeichen. Jetzt fragen Sie sich vielleicht, wann ich android:exported=”true” oder android:exported=”false” zu den Aktivitäten, Diensten oder Broadcast-Empfängern hinzufügen muss, die Absichtsfilter verwenden. Wenn die App-Komponente die Kategorie LAUNCHER enthält, setzen Sie android:exported auf true. In den meisten anderen Fällen setzen Sie android:exported auf false.
-
Hinweis: Überprüfen Sie auch einzelne Bibliotheksmanifestdateien von Drittanbietern, wenn Aktivitäten, Dienste oder Empfänger verwendet werden dann müssen Sie dieselbe Aktivität, denselben Dienst oder denselben Empfänger in Ihrer Hauptmanifestdatei mit überschreiben Android: exportiert Eigentum.
Zum Beispiel habe ich in meinem Fall definiert Android: exportiert für jede einzelne Aktivität, jeden Dienst oder Empfänger in meiner Hauptmanifestdatei, aber in meinem Projekt, das ich verwendet habe Razorpay Abhängigkeit so im Manifest von Rasiermesser wenn gefunden, dass es eine gibt Aktivität und Empfänger die verwenden Eigentum ohne Android: exportiert also habe ich sie in meinen Hauptmanifestdateien deklariert. Wie nachfolgend dargestellt :
<activity
android:name="com.razorpay.CheckoutActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:theme="@style/CheckoutTheme"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<data
android:host="rzp.io"
android:scheme="io.rzp" />
</intent-filter>
</activity>
<receiver android:name="com.razorpay.RzpTokenReceiver"
android:exported="true"
android:permission="android.permission.INTERNET">
<intent-filter>
<action android:name="rzp.device_token.share" />
</intent-filter>
</receiver>
Hinweis: In Ihrem Fall müssen Sie möglicherweise weitere Dateien durchgehen und Aktivitäten und Dienste überprüfen und in Ihrer Hauptmanifestdatei erwähnen.
- Auch nachdem Sie all dies getan haben, können Sie wieder zu ändern targetSdkVersion 31 und compileSdkVersion 31 in deiner build.gradle Datei.
In meinem Fall füge ich einfach diese Zeile zu meinem Manifest hinzu:
android:exported="true"

Ich habe dieses Problem endlich behoben
1: Installieren Sie den Emulator mit Android v 12
2: Führen Sie Ihre App aus, der Compailer wird Ihnen sagen, was Dienst/Empfänger usw hat das Problem verursacht
Jetzt müssen Sie es zu Ihrem Manifist hinzufügen und die hinzufügen android:exported=”true” dazu
In meinem Fall war das Problem mit dem lokalen Benachrichtigungspaket, ich bekam die Nachricht, dies zu beheben Empfänger
com.dexterous.flutterlocalnotifications.ScheduledNotificationBootReceiver
also habe ich mein manifist außerhalb der hauptaktivität hinzugefügt
<receiver android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationBootReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
</intent-filter>
</receiver>
und es funktionierte wie gewollt
Das Attribut „exportiert“ beschreibt, ob jemand anderes es verwenden darf oder nicht.
Wenn Sie also „exported=false“ für eine Aktivität haben, kann keine andere App oder sogar das Android-System selbst sie starten. Das können nur Sie innerhalb Ihrer eigenen Anwendung tun.
Die Einstellungen “exported=false” für die als LAUNCHER-Aktivität gekennzeichnete Aktivität würden dem System also grundsätzlich mitteilen, dass es Ihre Anwendung niemals starten kann.
Wenn Sie kein anderes Projekt verwenden, aktualisieren Sie die neuesten Versionen aller Bibliotheken, da einige alte Bibliotheken vorhanden sind AndroidManifest.xml nicht hinzugefügt android: exportiert in Aktivitäten, Dienstleistungen oder Rundfunkempfängern

Captainteknics Inc
Hinzufügen der Zeile android:exported=”true” zu meinen Manifes

Halil İbrahim GÜNBULAK
wenn Sie targetSdkVersion=31 verwenden
package="com.name.app"><!-- Channnge your package -->
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="https" />
</intent>
<intent>
<action android:name="android.intent.action.DIAL" />
<data android:scheme="tel" />
</intent>
<intent>
<action android:name="android.intent.action.SEND" />
<data android:mimeType="*/*" />
</intent>
</queries>
<application
android:label="Tut Elimi"
android:icon="@mipmap/ic_launcher">
<service android:name="com.example.app.backgroundService"
android:exported="true">
<intent-filter>
<action android:name="com.example.app.START_BACKGROUND" />
</intent-filter>
</service>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value=""/>
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize"
android:exported="true">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<meta-data
android:name="io.flutter.embedding.android.SplashScreenDrawable"
android:resource="@drawable/splash"
/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="FLUTTER_NOTIFICATION_CLICK" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<!-- Displays an Android View that continues showing the launch screen
Drawable until Flutter paints its first frame, then this splash
screen fades out. A splash screen is useful to avoid any visual
gap between the end of Android's launch screen and the painting of
Flutter's first frame. -->
</activity>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<receiver android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationBootReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
</intent-filter>
</receiver>
<service
android:name="com.name.app.BackgroundService"
android:enabled="true"
android:exported="true" />
<meta-data
android:name="flutterEmbedding"
android:value="2" />
</application>
</manifest> ````
10191800cookie-checkDu hast ein APK oder Android App Bundle hochgeladen, das eine Aktivität, einen Aktivitäts-Alias, einen Dienst oder einen Broadcast-Empfänger mit Intent-Filter, aber ohne den Zusatz „anyes