Passa ai contenuti principali

Android Studio - Manifest merger failed error

In questo articolo vedremo come gestire l'errore Manifest merger faild.

Questo errore capita quando impostiamo targetSdkVersion 31 e compileSdkVersion 31 quindi per Android 12 o versione sucessiva.

L'errore è il seguente:
Manifest merger failed : 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.
Come mostrato nell'immagine qui sotto
La soluzione è questa:
occorre inserire questo elemento all'interno del file AndroidManifest.xml all'interno dell'activity principale. Ecco come si presenta il file AndroidManifest.xml Come si può vedere l'elemento indicato è stato inserito alla riga 12 all'interno dell'activity principale.

Questo elemento imposta se l'attività può essere avviata da componenti di altre applicazioni:
  • Se impostato a "true", l'attività è accessibile a qualsiasi app ed è avviabile con il nome esatto della classe.
  • Se impostato a "false", l'attività può essere avviata solo da componenti della stessa applicazione, applicazioni con lo stesso ID utente o componenti di sistema privilegiati. Questo è il valore predefinito quando non sono presenti filtri di intenti.
Quindi, se la nostra app è progettata per dispositivi Android 12 o superiore è obbligatorio dichiarare questo elemento a "true" o "false" in base alle necessità.

Per maggiori dettagli fare riferimento a questa guida.

Commenti

Post popolari in questo blog

Arduino - Lettura tensione potenziometro e display LCD

Leggere il valore di un poteziometro (parte 2) Oggi vedremo come leggere il valore in tensione di un potenziometro collegato al pin Analogico A0 di Arduino.

Arduino - Utilizzo potenziometro e display LCD

Leggere il valore di un poteziometro (parte 1) Il potenziometro è un componente molto utilizzato in elettronica in quanto il suo uso permette di regolare una tensione variabile (in questo caso 0 - 5 Volt) in ingresso al microcontrollore. Il potenziometro va collegato secondo lo schema qui sotto al pin analogico A0 di Arduino.

Arduino - Lampeggio Led (delay vs. millis)

Cosa sono delay() e millis()? Delay() è una funzione che mette in pausa il programma per un determinato tempo espresso in millisecondi, così facendo viene interrotta l'esecuzione del programma e se abbiamo un dispositivo in ingresso che durante il tempo di pausa cambia di stato il programma non se ne accorge fino a quando non ricomincia l'esecuzione dall'inizio. La struttura di delay è: delay(1000);   da inserire nel punto dello sketch in qui si vuole interrompere il programma in questo modo il programma viene messo in pausa per 1000 millisecondi = 1 secondo. Per saperne di più Millis() è una funzione che permette di sapere da quanto tempo è in funzione il microprocessore di Arduino UNO. In questo modo il programma non andrà mai in pausa ed è sempre in esecuzione, perché millis memorizza il tempo trascorso dall'avvio e poi per eseguire una determinata funzione si fa un controllo del tempo iniziale e il tempo trascorso. Per saperne di più Vediamo un esempi