Est-ce que` android:supportsRtl="true" ' dans le Manifeste de la Bibliothèque est essentiel? Il provoque parfois des erreurs

quand je crée une bibliothèque Android, par défaut il me donnerait le ci-dessous dans le fichier manifeste

<application android:allowBackup="true"
    android:label="@string/app_name"
    android:supportsRtl="true"/>

après l'avoir postée comme une bibliothèque sur Bintray et utilisée par d'autres, il suffit de réaliser si une application qui inclut cette bibliothèque a le dessous dans son Manifeste

    android:supportsRtl="false"

il affichera l'erreur comme ci-dessous lors de la synchronisation ou de la compilation gradle.

Error:Execution failed for task ':app:processProductionDebugManifest'.
> Manifest merger failed : Attribute application@supportsRtl value=(false) from AndroidManifest.xml:23:9-36
is also present at [com.mylibrarypackage:mylibrary:1.0.0] AndroidManifest.xml:14:9-35 value=(true).
Suggestion: add 'tools:replace="android:supportsRtl"' to <application> element at AndroidManifest.xml:18:5-67:19 to override.

pour le réparer, je pense que je devrais enlever le android:supportsRtl="true" du Manifeste de ma bibliothèque.

me demande Juste pourquoi Android que par défaut la bibliothèque de manifester? Y aurait-il un problème si j'enlevais android:supportsRtl="true" de mon manifeste de bibliothèque?

6
demandé sur Elye 2016-08-27 09:22:04

2 réponses

outils: remplacer= "x, y"

remplacer les attributs x, y de toute déclaration de priorité inférieure par les attributs suivants: la valeur fournie (doit être présent sur le même nœud).

lors de l'importation d'une bibliothèque avec un SDK cible inférieur à celui du projet, il peut être nécessaire d'accorder explicitement des permissions (et peut-être d'apporter d'autres modifications) pour que la bibliothèque fonctionne correctement dans l'exécution ultérieure. Ce sera réalisé automatiquement par la fusion manifeste.

Vous

la fusion manifeste a échoué: attribut application@supportsRtl valeur=(false) à partir de AndroidManifest.xml: 23: 9-36

vous pouvez ajouter

tools:replace="android:supportsRtl"

"enfin

<application android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true"
tools:replace="android:supportsRtl"/>
15
répondu IntelliJ Amiya 2016-08-27 06:29:27

il est nécessaire si vous voulez supporter des mises en page droite-à-gauche (RTL). Si défini à true et targetSdkVersion est défini à 17 ou plus, plusieurs API RTL seront activées et utilisées par le système afin que votre application puisse afficher les mises en page RTL. Si défini à false ou si targetSdkVersion est défini à 16 ou moins, les API RTL seront ignorées ou n'auront aucun effet et votre application se comportera de la même façon quelle que soit la direction de mise en page associée au choix de la Locale de l'Utilisateur (vos mises en page seront toujours de gauche à droite).

La valeur par défaut de cet attribut est faux.

cet attribut a été ajouté au niveau 17 de L'API.

(Source: http://developer.android.com/guide/topics/manifest/application-element.html )

0
répondu Gaurav Sarma 2016-08-27 07:13:42