도구를 사용하는 방법:build.gradle 파일에서 라이브러리를 재정의합니까?
안드로이드 17 이상이 필요한 린백 라이브러리를 사용하고 있습니다.그러나 내 앱은 16의 minSDK를 지원하므로 gradle에서 빌드 오류가 발생합니다.
Error:Execution failed for task ':Tasks:processPhoneDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 17 declared in library /Users/mike/Projects/android-for-dummies-v3/Tasks/build/intermediates/exploded-aar/com.android.support/leanback-v17/21.0.2/AndroidManifest.xml
Suggestion: use tools:overrideLibrary="android.support.v17.leanback" to force usage
빌드 도구 설명서를 보면 다음을 추가하는 방법을 확인할 수 있습니다.overrideLibrary
내 매니페스트의 마커입니다. 하지만 문제는 내 minSdk를 매니페스트가 아닌 그래들 파일에 선언한다는 것입니다.
제가 어떻게 이용합니까overrideLibrary
minSdk가 AndroidManifest.xml이 아닌 build.gradle로 선언되면 어떻게 됩니까?
Android Studio 열기 -> 매니페스트 파일 열기
더하다<uses-sdk tools:overrideLibrary="android.support.v17.leanback"/>
포함하는 것을 잊지 마세요.xmlns:tools="http://schemas.android.com/tools"
역시, 그 전에.<application>
꼬리표를 달다
minSdk를 build.gradle에 선언하는 것은 중요하지 않습니다.복사해야 합니다.overrideLibrary
당신의AndroidManifest.xml
여기에 기록된 바와 같이
<manifest
... >
<uses-sdk tools:overrideLibrary="com.example.lib1, com.example.lib2"/>
...
</manifest>
시스템은 AndroidManifest.xml에 선언된 sdkVersion을 자동으로 무시합니다.
이것으로 당신의 문제가 해결되길 바랍니다.
<manifest xmlns:tools="http://schemas.android.com/tools" ... >
<uses-sdk tools:overrideLibrary="nl.innovalor.ocr, nl.innovalor.corelib" />
저는 여러 min sdk 버전 간의 충돌 문제에 직면했습니다.그래서 이 해결책은 저에게 효과가 있었습니다.
방금 안드로이드만 변경했습니다. minSdkVersion="16"이고 완벽하게 작동합니다.\MyApp\platforms\안드로이드\CordovaLib\Android Manifest.xml
manifest.xml에서 이 코드 사용
<uses-sdk
android:minSdkVersion="16"
android:maxSdkVersion="17"
tools:overrideLibrary="x"/>
방금 바꿨습니다.minSdkVersion="7"
에C:\MyApp\platforms\android\CordovaLib\AndroidManifest.xml
그리고 그것은 성공하였다.
단계:
- 경로:
C:\MyApp\platforms\android\CordovaLib\AndroidManifest.xml
- 값:
<uses-sdk android:minSdkVersion="7"/>
새 cmd 프롬프트에서 명령 실행:
C:\MyApp>phonegap build android --debug [phonegap] executing 'cordova build android --debug'... [phonegap] completed 'cordova build android --debug'
모든 라이브러리에 대한 솔루션으로 SDK 버전을 일치시켜 예기치 않은 이벤트가 발생하지 않도록 할 수 있습니다.
subprojects {
afterEvaluate {project ->
if (project.hasProperty("android")) {
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
//It's kinda tricking android studio but anyway it works
minSdkVersion 17
}
}
}
if (project.hasProperty("dependencies")) {
dependencies {
implementation 'com.android.support:support-core-utils:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.google.android.gms:play-services-base:16.1.0'
}
}
}
}
프로젝트에서 사용하지 않는 라이브러리(gms)를 제거하고 sdk 버전이 앱 수준 Gradle 데이터와 일치하는지 확인합니다.
그것은 나에게 효과가 있습니다.
<uses-sdk
android:minSdkVersion="16"
android:maxSdkVersion="17"
tools:overrideLibrary="pl.droidsonroids.gif" />
라이브러리의 요구에 따라minSdkVersion 17
그러면 당신은 같은 것을 바꿀 수 있습니다.build.gradle
(모듈:Application) 파일:
defaultConfig {
minSdkVersion 17
targetSdkVersion 25
}
그리고 그 건물 이후에 프로젝트는 어떠한 빌드 오류도 던지지 않아야 합니다.
언급URL : https://stackoverflow.com/questions/27095077/how-do-i-use-toolsoverridelibrary-in-a-build-gradle-file
'programing' 카테고리의 다른 글
ASP.NET에서 웹 페이지를 이미지로 변환 (0) | 2023.08.15 |
---|---|
작성된 경우 다른 테이블을 가리키는 뷰 유사 유사 테이블 작성 방법 (0) | 2023.08.15 |
기본 재배치 후 분기로 푸시할 수 없음 (0) | 2023.08.15 |
사용자가 파일을 다운로드한 후 삭제 (0) | 2023.08.15 |
Visual Studio Code의 나란히 있는 파일에서 'git diff'를 보려면 어떻게 해야 합니까? (0) | 2023.08.15 |