web-dev-qa-db-ja.com

AndroidManifestの<meta-data>要素に「tools:replace = "Android:value"」を追加します

私はHeadFirst Android開発のチュートリアルに従っていますが、追加後に問題が発生しました:private ActionBarDrawerToggledrawerToggle;

このコントロールは廃止されたため、com.Android.support:appcompat-v7:26.0.0-alpha1をアプリモジュールに追加して、Stackの指示に従って問題を解決しました

しかし、今では次のビルドエラーが発生しています。

エラー:タスク ':app:processDebugManifest'の実行に失敗しました。

マニフェストの統合に失敗しました:属性meta-data#Android.support.VERSION@value value =(25.3.1)from [com.Android.support:recyclerview-v7:25.3.1] AndroidManifest.xml:24:9-31も[com.Android.support:appcompat-v7:26.0.0-alpha1] AndroidManifest.xml:27:9-38 value =(26.0.0-alpha1)に存在します。提案:オーバーライドするには、AndroidManifest.xml:22:5-24:34の要素に「tools:replace = "Android:value"」を追加します。

コードは次のとおりです。

53
D.Hodges

問題は、同じバージョンとメジャーバージョンのすべてのサポートライブラリがコンパイルSDKバージョンと一致する必要があることです。

そのため、特定のサポートライブラリバージョンを強制するようにしてください。これをアプリモジュールの最後のbuild.gradleに配置します。

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.Android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '25.3.0'
            }
        }
    }
}
179
Sagar Giri

まだ持っていない場合は、最初にこの行をマニフェストタグに追加します。

xmlns:tools="http://schemas.Android.com/tools"

例:

<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.winanainc"
    Android:versionCode="3"
    Android:versionName="1.2"
    xmlns:tools="http://schemas.Android.com/tools">

次に、アプリケーション内にこのメタタグを追加して、ビルドツールのバージョンを上書きします。この場合、たとえば、バージョン25.3.1を選択しました

<application>
   ...
   ..
    <meta-data
        tools:replace="Android:value"
        Android:name="Android.support.VERSION"
        Android:value="25.3.1" />
</application>
17
Led Machine

すべてのサポートライブラリバージョンを25.3.1に変更し、チャームのように機能しました。

compile 'com.Android.support:appcompat-v7:25.3.1'
compile 'com.Android.support:design:25.3.1'

また、次のパラメーターを25に変更する必要があります。

compileSdkVersion 25
targetSdkVersion 25
5
Darush
 <application
            Android:allowBackup="true"
            Android:icon="@mipmap/ic_launcher"
            Android:label="@string/app_name"
            Android:largeHeap="true"
            Android:supportsRtl="true"
            Android:theme="@style/AppTheme"

            >
            <meta-data
                tools:replace="Android:value"
                Android:name="Android.support.VERSION"
                Android:value="26.0.0" />
        </application>
5
DILSHAD AHMAD

開くAndroid Studio->マニフェストファイルを開く

<uses-sdk tools:overrideLibrary="Android.support.v17.leanback"/>を追加します。 xmlns:tools="http://schemas.Android.com/tools"タグの前に、<application>も含めることを忘れないでください

取り替える

compile 'com.Android.support:recyclerview-v7:+' 

によって

compile 'com.Android.support:recyclerview-v7:25.3.1'

そして追加

compile 'com.Android.support:appcompat-v7:25.3.1'
compile 'com.Android.support:design:25.3.1'
2
Atul
  1. Android Studio->マニフェストファイルを開く
  2. 結合マニフェストに切り替えて、他のマニフェストファイルを確認します。

私の場合、26.1.0のサポートファイルを使用していますが、support-v13は26.0.1です enter image description here

だから私はimplementation 'com.Android.support:support-v13:26.1.0'をGradleファイルに追加し、問題を解決しました

1
mhcpan
        Add <meta-data> tag in manifest.xml file as below...


    <?xml version="1.0" encoding="utf-8"?>
    <manifest package="com.demo"
        xmlns:Android="http://schemas.Android.com/apk/res/Android"
        xmlns:tools="http://schemas.Android.com/tools">

        <uses-permission Android:name="Android.permission.INTERNET"/>

        <application
            Android:name=".MyApplication"
            Android:allowBackup="true"
            Android:icon="@mipmap/ic_launcher"
            Android:label="@string/app_name"
            Android:supportsRtl="true"
            Android:theme="@style/AppTheme">
            <activity
                Android:name=".MainActivity"
                Android:theme="@style/AppTheme">
                <intent-filter>
                    <action Android:name="Android.intent.action.MAIN"/>

                    <category Android:name="Android.intent.category.LAUNCHER"/>
                </intent-filter>
            </activity>

            **<meta-data
                tools:replace="Android:value"
                Android:name="Android.support.VERSION"
                Android:value="25.3.1" />//this 25.3.1 version should be same which we defined in the build.gradle file. i am using compileSdkVersion 25**

        </application>
 </manifest>

確実に動作する@ASK ....

このコードは私の問題を解決しました

「問題は、同じバージョンとメジャーバージョンのサポートライブラリはすべて、コンパイルSDKバージョンと一致する必要があるということです。

そのため、特定のサポートライブラリバージョンを強制するようにしてください。 build.gradleのアプリモジュールの最後にこれを配置します。」

ありがとう

0
M.Jalalifar

@sagar giriによる答えは一時的な回避策です。これを解決するために私がしたことは最後に説明されています。

最新のAndroid Studioに最新のサポートライブラリがインストールされていて、ビルドgradleのアプリモジュールに古いサポートライブラリバージョンがある場合、Androidスタジオはバージョンの不一致により失敗します。

したがって、サポートライブラリのバージョンを最新のものに更新し、アイコンの名前変更などの最新のサポートライブラリの変更を修正して再構築します。

それが役に立てば幸い...

0
Boopathi T