库清单中的"android:supportsRtl= "true" "是必不可少的吗?它有时会导致错误



当我创建Android库时,默认情况下它会在Manifest文件中给我以下内容

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

在将其作为库发布到Bintray并被其他人使用之后,请注意如果包含该库的应用程序在其Manifest

中包含以下内容
    android:supportsRtl="false"

在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.

要修复它,我认为我需要从我的库清单中删除android:supportsRtl="true"

只是想知道为什么Android将此作为默认的库清单?如果我从库清单中删除android:supportsRtl="true",会有任何潜在的问题吗?

工具:取代= " x, y "

将任何较低优先级声明中的x, y属性替换为提供的值(必须出现在同一节点上)。

当导入一个目标SDK低于项目的库时,可能需要显式地授予权限(可能还需要进行其他更改),以便库在以后的运行时中正常运行。这将由清单合并自动执行。

清单合并失败:属性application@supportsRtlvalue=(false) from AndroidManifest.xml:23:9-36

可以添加

tools:replace="android:supportsRtl"
最后

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

如果你想支持从右到左(RTL)布局,这是必需的。如果设置为true, targetSdkVersion设置为17或更高,系统将激活和使用各种RTL api,以便您的应用程序可以显示RTL布局。如果设置为false或targetSdkVersion设置为16或更低,RTL api将被忽略或不起作用,并且无论与用户的Locale选择相关的布局方向如何,你的应用程序都将表现相同(你的布局总是从左到右)。

该属性的默认值为false。

此属性在API级别17中添加。

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

相关内容

  • 没有找到相关文章

最新更新