Programing

Android Studio 2.3이 포함 된 Android 지원 Repo 46.0.0

crosscheck 2021. 1. 9. 10:43
반응형

Android Studio 2.3이 포함 된 Android 지원 Repo 46.0.0


Android Studio 알림이 표시되면서 오늘 내 지원 저장소를 46.0.0으로 업데이트했습니다.

아래 오류가 발생합니다.

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

매니페스트 병합 실패 : [com.android.support:support-v13:25.3.0] AndroidManifest.xml : 27 : 9-31의 Attribute meta-data#android.support.VERSION@value value = (25.3.0)도 [com.android.support:preference-v7:26.0.0-alpha1] AndroidManifest.xml : 24 : 9-38 value = (26.0.0-alpha1)에 있습니다. 제안 : 재정의하려면 AndroidManifest.xml : 25 : 5-27 : 34의 요소에 'tools : replace = "android : value"'를 추가하세요.

25.3.0에서 Revision 26.0.0 Alpha 1을 사용하도록 모든 종속성을 업데이트했지만 compileSdk를 25에서 26으로 올릴 필요가 있습니다. AS 2.3이있는 경우이를 수행 할 수 없습니다. 카나리아의 불안정한 알파 / 베타 버전입니다.

이 링크는 변경 사항을 보여줍니다 : https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0-alpha1

새로운 Android O 로의 마이그레이션과 관련하여 https://developer.android.com/preview/migration.html 링크입니다.

AS 안정 버전을 사용하면 새 저장소에서 작동하지 않는 것 같습니다.

새로운 46 대신 Android Studio Repository 버전 45로 돌아가려면 어떻게해야합니까?

** 업데이트 : 병합 된 매니페스트는 생성 된 라이브러리 매니페스트 중 하나에

<meta-data
        android:name="android.support.VERSION"
        android:value="26.0.0-alpha1" />

하지만 생성 된 파일 편집은 쓸모가 없기 때문에 지금은 새 AS가 안정적인 빌드가 될 때까지 rev 45를 고수하는 것입니다.


뭐가 문제 야

일부 라이브러리는 Android 지원 라이브러리의 'X 이상'버전에 의존하므로 Gradle 종속성 해결은 실제로 dependencies블록 에 정확한 버전이 지정되어 있음을 무시하고 사용 가능한 최신 버전을 가져옵니다 .

이것은 당신이 원하는 것이 아닙니다. 동일한 버전의 모든 지원 라이브러리를 원하고 주요 버전은 컴파일 SDK 버전과 일치해야합니다.

해결책은 무엇입니까

다행히 특정 지원 라이브러리 버전을 강제 할 수 있습니다.

이것을 앱 모듈 끝에 넣으십시오 build.gradle.

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            // Skip multidex because it follows a different versioning pattern.
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '25.3.0'
            }
        }
    }
}

물론 사용중인 버전으로 교체하십시오.

dependecies블록의 지원 라이브러리에 대한 버전 값 은 이제 관련이 없습니다.

의심이 있다면

이것은 잘 문서화 된 방법 이며 작동합니다.

무엇을 도와 드릴까요?

다양한 지원 라이브러리 버전 에 따라 달라지는 라이브러리 찾기

gradlew dependencies --configuration compile -p <module name> | grep ,

그리고 해당 라이브러리의 작성자 에게 라이브러리가 사용할 수있는 가장 오래된 지원 라이브러리 에 전 이적으로 의존해야 함을 알립니다 .

이것은 문제를 완전히 피하는 것을 목표로합니다.


1 단계

Gradle이 호환되지 않는 com.android.support버전을 확인하는 것을 피하려면 app module에 다음 코드를 추가하는 것이 빠른 수정입니다 build.gradle.

dependencies {
    //noinspection GradleCompatible
}

이것은 근본적인 문제를 해결하지 못하는 임시 수정입니다! 최소한의 수정으로 앱을 계속 개발하는 데 도움이되었습니다.

2 단계

이것을 기본 매니페스트 파일에 추가합니다 AndroidManifest.xml.

<meta-data
    tools:replace="android:value"
    android:name="android.support.VERSION"
    android:value="25.3.1" />

This entry will be removed when one of the next updates of the support repository is available.

Step 3

Add the following code at the end of app module build.gradle file:

configurations.all {
    resolutionStrategy.eachDependency { details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '25.3.1'
            }
        }
    }
}

NB: It is recommended to make sure your Gradle libraries are updated and compatible to avoid runtime errors.


Their is a solution to fix it out:

  1. Move to Project explorer view
  2. Reach to bottom their is External Libraries
  3. See which library is using 26.0.0-alpha6
  4. Now write this in app.gradle on the basis of library in Step 3

Ex. in my case:

configurations.all {
    resolutionStrategy.force 'com.android.support:appcompat-v7:25.3.0'
    resolutionStrategy.force 'com.android.support:support-v13:25.3.0'
}

This will force project to use mentioned library.


I think the best solution is to just revert the Android Support Library to version 45.

To do this, open this link (change version to whatever suits your needs)

https://dl-ssl.google.com/android/repository/android_m2repository_r45.zip

When downloaded, unzip and copy m2repository to android-sdk-root-folder\extras\android. Make sure to delete the existing m2repository prior to unzipping to avoid problems.


This is a temporary fix that doesn't solve the underlying problems! It helped me continuing developing software with minimal modifications. Just add this to the main manifest:

<meta-data
    tools:replace="android:value"
    android:name="android.support.VERSION"
    android:value="25.3.0" />

This entry can hopefully be removed again with one of the next updates of the support repository.

SOLUTION: The marked solution worked for me by adding the following to 4 of my 10 build.gradle files:

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

just do this that's all :-

compile 'com.android.support:appcompat-v7:25.3.1'

here v7:25.3.1 is my current version you just put urs.

in app gradle file


to me the problem was that the versions weren't the same in here

implementation 'com.android.support:appcompat-v7:**26.0.0-beta1**'
implementation 'com.android.support:support-v4:**26.0.0-beta1**'
implementation 'com.android.support:design:**26.0.0-beta1**'

and the card view was

compile 'com.android.support:cardview-v7:26.1.0'

so i changed the version libraries to..

implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.android.support:design:26.1.0'

hope this help, good luck

ReferenceURL : https://stackoverflow.com/questions/42949974/android-support-repo-46-0-0-with-android-studio-2-3

반응형