Programing

'tools : replace =“Android : value”'추가

lottogame 2021. 1. 9. 09:20
반응형

'tools : replace =“Android : value”'추가 AndroidManifest의 요소


HeadFirst Android 개발 튜토리얼을 따르고 있는데 추가 후 문제가 발생했습니다. private ActionBarDrawerToggle drawerToggle;

컨트롤이 더 이상 사용되지 않으므로 Stack의 지침에 따라 com.android.support:appcompat-v7:26.0.0-alpha1을 앱 모듈에 추가하여 해당 문제를 해결했습니다.

하지만 이제 다음과 같은 빌드 오류가 발생합니다.

오류 : ': app : processDebugManifest'작업에 대한 실행이 실패했습니다.

매니페스트 병합 실패 : [com.android.support:recyclerview-v7:25.3.1]의 Attribute meta-data#android.support.VERSION@value value = (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"'를 추가하세요.

다음은 코드입니다.


문제는 동일한 버전과 메이저 버전의 모든 지원 라이브러리가 컴파일 SDK 버전과 일치해야한다는 것입니다.

따라서 특정 지원 라이브러리 버전을 강제로 시도하십시오. .NET의 앱 모듈 끝에 이것을 넣으십시오 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'
            }
        }
    }
}

아직없는 경우 먼저 매니페스트 태그에 다음 줄을 추가합니다.

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>

모든 지원 라이브러리 버전을 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

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

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'

        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>

@Ambilpura 작동합니다 ....


  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 파일에 추가 하고 문제가 해결되었습니다.


@sagar giri의 대답은 일시적인 해결 방법입니다. 이 문제를 해결하기 위해 내가 한 일은 끝에 설명되어 있습니다.

If you have latest support library installed in latest android studio and if you have a old support library version in build gradle's app module, then android studio fails due to the version mismatch.

So update your support library version to latest one and fix latest support library changes like icon renaming etc and rebuild it.

hope it helps...


This code resolved my problem

"Problem is that all support libraries with same version and major version has to match compile SDK version.

So try to force a specific support library version. Put this at the end of your app module in build.gradle."

thanks


add 'tools:replace="android:value"' to element at AndroidManifest.xml:22:5-24:34 to override. add to Line AndroidManifest.xml:22

ReferenceURL : https://stackoverflow.com/questions/43140059/add-toolsreplace-androidvalue-to-meta-data-element-at-androidmanifest

반응형