美文网首页
AndroidManifest文件合并出现的问题

AndroidManifest文件合并出现的问题

作者: act262 | 来源:发表于2017-08-25 17:18 被阅读260次

    出现的问题:

    在有多个library依赖合并的情况下,很有可能会出现的问题

        <application
            android:name=".MyApplication"
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="false"
            android:theme="@style/Theme">
            
            // ...
        </application>
    

    在其他库中对于这些属性值都有可能是不同的,所以会导致在合并时出现不知道以哪个值为准的问题。

    比如Library库中的supportsRtl属性

        // 这里值为true,而主App的值为false
        android:supportsRtl="true"
    

    在合并AndroidManifest文件时就会出现下面的提示

    Error:Execution failed for task ':app:processDevDebugManifest'.
    > Manifest merger failed : Attribute application@supportsRtl value=(false) from AndroidManifest.xml:39:9-36
        is also present at [Library:unspecified] AndroidManifest.xml:14:9-35 value=(true).
        Suggestion: add 'tools:replace="android:supportsRtl"' to <application> element at AndroidManifest.xml:6:5-15:19 to override.
    

    解决方案:

    利用tools命名空间替换其他依赖库的属性,这样就统一了这个属性的最终取值。

        <application
            android:name=".MyApplication"
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="false"
            android:theme="@style/Theme"
            tools:replace="android:supportsRtl">
            
        </application>
    

    如果一不小心写错需要的属性名,就会报下面的错,所以需要准确的对应属性名。

        tools:replace specified at line:34 for attribute android:suppotsRtl, but no new value specified
    

    相关文章

      网友评论

          本文标题:AndroidManifest文件合并出现的问题

          本文链接:https://www.haomeiwen.com/subject/wpxpdxtx.html