Cargó un APK o Android App Bundle que tiene una actividad, un alias de actividad, un servicio o un receptor de transmisión con filtro de intención, pero sin el ‘an
⏰ 8 minutos de lectura
syed waleed
Tema : Cargó un APK o Android App Bundle que tiene una actividad, un alias de actividad, un servicio o un receptor de transmisión con filtro de intenciones, pero sin el conjunto de propiedades ‘android: exportado’. Este archivo no se puede instalar en Android 12 o superior. Consulte: developer.android.com/about/versions/12/behavior-changes-12#exported
De acuerdo con la nueva política de Google Si su aplicación tiene como objetivo Android 12 o superior y contiene actividades, servicios o receptores de transmisión que usan filtros de intención, debe declarar explícitamente el atributo android:exportado para estos componentes de la aplicación. Puedes seguir estos pasos:
abierto AndroidManifest.xml archivo y en la parte inferior seleccionar Manifiesto fusionado. como esto :
si no puede obtener una vista previa del Manifiesto combinado, en su construir.gradle conjunto de archivos compileSdkVersión 30 y targetSdkVersión 30 y sincronice su proyecto y ahora intente abrir el manifiesto fusionado nuevamente. Espero que esta vez tenga una vista previa adecuada del manifiesto fusionado. pero si no hay una vista previa, no se preocupe, aún puede navegar a archivos de manifiesto individuales de diferentes bibliotecas de terceros que haya utilizado en su proyecto.
Ahora verifique todas las actividades, servicios, receptor que usa intent-filter sin Android: exportado etiqueta. En su archivo de manifiesto principal, simplemente puede agregar Android: exportado propiedad a actividad etiqueta así que agrega android:exported=”” y establece un valor booleano dentro de estas comillas. Ahora puede preguntar cuándo debo agregar android:exported=”true” o android:exported=”false” a las actividades, servicios o receptores de transmisión que usan filtros de intención. Si el componente de la aplicación incluye la categoría LAUNCHER, establezca android:exported en verdadero. En la mayoría de los demás casos, establezca android: exportado en falso.
Nota: también verifique los archivos de manifiesto de la biblioteca de terceros individuales si hay alguna actividad, servicio o receptor usando entonces debe anular la misma actividad, servicio o receptor en su archivo de manifiesto principal con Android: exportado propiedad.
Por ejemplo en mi caso he definido Android: exportado para todas y cada una de las actividades, servicios o receptores en mi archivo de manifiesto principal, pero en mi proyecto estaba usando maquinilla de afeitar dependencia por lo que en el manifiesto de maquinilla de afeitar si se encuentra que hay un actividad y receptor que están usando propiedad sin Android: exportado así que los declaré en mis archivos de manifiesto principales. Como se muestra abajo :
Nota: en su caso, es posible que deba revisar más archivos y verificar la actividad, los servicios y mencionarlos en su archivo de manifiesto principal.
también después de hacer todo esto, puede volver a cambiar a targetSdkVersión 31 y compileSdkVersión 31 en tus construir.gradle expediente.
Genial, esto también funcionó para mí, ya que también estoy usando la biblioteca Razorpay luego de agregar CheckoutActivity y RzpTokenReceiver en manifiesto como se mencionó anteriormente.
– Shailendra Madda
25 de enero a las 9:27
¡¡Excelente!! Mirando el archivo de manifiesto de salida en obj/Debug/Android, encuentro el servicio con “intent-filter” pero que no tiene “android: exportado” establecido
– Ricko..
28 de enero a las 17:04
En mi caso, solo agrego esta línea a mi manifiesto:
android:exported="true"
Esto funcionó para mi proyecto Flutter
– Mohamed Saleh
1 jun a las 13:50
finalmente arreglé este problema
1: instalar emulador con android v 12
2: ejecute su aplicación, el compilador le dirá qué servicio/receptor… etc. causó el problema
ahora tienes que agregarlo a tu manifist y agregar el Android: exportado = “verdadero” lo
en mi caso, el problema fue con el paquete de notificación local. Recibí el mensaje para solucionarlo. receptor com.dexterous.flutterlocalnotifications.ScheduledNotificationBootReceiver
así que agregué a mi manifista fuera de la actividad principal
El atributo “exportado” describe si se le puede permitir o no a otra persona usarlo.
Entonces, si tiene “exportado = falso” en una Actividad, ninguna otra aplicación, o incluso el propio sistema Android, puede iniciarla. Solo usted puede hacer eso, desde dentro de su propia aplicación.
Por lo tanto, la configuración “exportada = falsa” en la Actividad marcada como Actividad LAUNCHER básicamente le diría al sistema que no puede iniciar su aplicación, nunca.
Si no está utilizando ningún otro proyecto, actualice todas las versiones más recientes de la biblioteca porque algunas bibliotecas antiguas AndroidManifest.xml no añadido Android: exportado en actividades, servicios o receptores de radiodifusión
capitanteknics inc
Agregando la línea android:exported=”true” a mis manifiestos
Halil Ibrahim GÜNBULAK
si usa targetSdkVersion=31
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> ````
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información