도구: Android 매니페스트에서 교체하지 않음
저는 도서관 의존성이 많은 그라들 프로젝트를 사용하고 있고 새로운 매니페스트 합병을 사용하고 있습니다.<application />
태그를 지정하면 다음과 같이 설정됩니다.
<application tools:replace="android:icon, android:label, android:theme, android:name"
android:name="com.example.myapp.MyApplcation"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/application_name"
android:logo="@drawable/logo_ab"
android:theme="@style/AppTheme"
>
....
</application>
그러나 저는 오류를 받고 있습니다.
/android/MyApp/app/src/main/AndroidManifest.xml:29:9 Error:
Attribute application@icon value=(@drawable/ic_launcher) from AndroidManifest.xml:29:9
is also present at {Library Name} value=(@drawable/app_icon)
Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:26:5 to override
/android/MyApp/app/src/main/AndroidManifest.xml:30:9 Error:
Attribute application@label value=(@string/application_name) from AndroidManifest.xml:30:9
is also present at {Library Name} value=(@string/app_name)
Suggestion: add 'tools:replace="android:label"' to <application> element at AndroidManifest.xml:26:5 to override
/android/MyApp/app/src/main/AndroidManifest.xml:27:9 Error:
Attribute application@name value=(com.example.myapp.MyApplication) from AndroidManifest.xml:27:9
is also present at {Another Library}
Suggestion: add 'tools:replace="android:name"' to <application> element at AndroidManifest.xml:26:5 to override
/android/MyApp/app/src/main/AndroidManifest.xml:32:9 Error:
Attribute application@theme value=(@style/AppTheme) from AndroidManifest.xml:32:9
is also present at {Library Name} value=(@style/AppTheme)
Suggestion: add 'tools:replace="android:theme"' to <application> element at AndroidManifest.xml:26:5 to override
매니페스트 헤더를 이렇게 선언합니다.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yourpackage"
xmlns:tools="http://schemas.android.com/tools">
그런 다음 응용 프로그램 태그에 다음 속성을 추가할 수 있습니다.
<application
tools:replace="icon, label" ../>
예를 들어 아이콘과 라벨을 교체해야 합니다.
저도 같은 문제를 고쳤습니다.솔루션:
xmlns:tools="http://schemas.android.com/tools"
을 긋다- 더하다
tools:replace=..
- 움직이다
android:label=...
예:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:replace="allowBackup, label"
android:allowBackup="false"
android:label="@string/all_app_name"/>
그라들 파일에서 종속성의 순서를 바꾸십시오.저는 불쾌감을 주는 도서관을 목록의 맨 아래에서 맨 위로 옮겨야 했고, 그리고 나서 효과가 있었습니다.
했습니다의 했습니다.tools:replace=...
OP가 설명한 바와 같이
의 근본 은...tools:replace
매니페스트 합병에 의해 무시되는 것은 여기에 설명된 버그입니다.이는 기본적으로 프로젝트에 매니페스트가 포함된 라이브러리가 있는 경우<application ...>
tools:ignore=...
성,다가 수 .tools:replace=...
주 모듈의 매니페스트에 있는 속성은 무시됩니다.
여기서 까다로운 점은 그것이 일어날 수는 있지만, 그럴 필요는 없다는 것입니다.제 경우에는 도서관 A와 함께 2개의 도서관을 가지고 있었습니다.tools:ignore=...
각 및리 B.tools:replace=...
module의 에 만약 A의 매니페스트 이전에 B의 매니페스트가 메인 매니페스트에 병합된다면 모든 것이 예상대로 작동했습니다.병합 순서와 반대로 오류가 발생했습니다.
이러한 합병이 일어나는 순서는 다소 무작위적인 것으로 보입니다.합니다.build.gradle
맛의 이름을 바꾸는 것 외에는 효과가 없었습니다.
할 수 있는 한 해결책은 , 입니다, 입니다.tools:ignore=...
(lint 전용 힌트이므로 문제가 없을 것입니다) 태그를 지정하고 라이브러리를 다시 포장합니다.
그리고 버그를 고치도록 투표해주세요, 당연하죠.
최종 작업 솔루션(샘플 코드의 단계 강조 표시):
xmlns:tools
을 긋다- 더하다
tools:replace
예:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="pagination.yoga.com.tamiltv"
**xmlns:tools="http://schemas.android.com/tools"**
>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
**tools:replace="android:icon,android:theme"**
>
제게 사라진 작품은 이것이었습니다.
xmlns:tools="http://schemas.android.com/tools"
예를 들어 다음과 같습니다.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.your.appid">
Manifest 응용프로그램 태그에서 다음 내용을 대체할 수 있습니다.
<application
tools:replace="android:icon, android:label, android:theme, android:name,android:allowBackup"
android:allowBackup="false"...>
당신을 위해 일할 겁니다
다음과 같은 해킹이 가능합니다.
- 을 더하다
xmlns:tools="http://schemas.android.com/tools"
매니페스트 태그에 줄을 긋다 - 더하다
tools:replace="android:icon,android:theme,android:allowBackup,label"
지원서 태그에
tools:replace="android:supportsRtl,android:allowBackup,icon,label">
Fixed IT에 정확한 오류가 있었습니다. 다음 도구만 추가하십시오.replace="android:아이콘, android:theme"
매니페스트에 있는 응용 프로그램 태그에 입력하면 잘 작동합니다.
매니페스트에 있는 것들을 대체할 수 있습니다.application
태그:
<application
...
tools:replace="android:label, android:icon, android:theme"/>
당신을 위해 일할 겁니다
설명.
이러한 종속성/라이브러리를 사용하여gradle
매니페스트의 응용 프로그램 태그에 이러한 레이블이 있는 파일은 이 문제를 발생시키고 당신의 파일에서 대체할 수 있습니다.Manifest
해결책입니다.
저의 문제는 기본 모듈, 앱 모듈, 피처 모듈로 멀티 모듈 프로젝트를 진행하는 것입니다.모듈마다 안드로이드 매니페스트가 있고, 디버그와 메인을 위해 빌드 변형을 구현했습니다.따라서 "android:name"이 방금 Manifest of debug 및 main에서만 선언되었는지 확인하고 Manifest in child 모듈에서 설정하지 않아야 합니다.Ex: 메인 매니페스트:
<application
android:name=".App"/>
디버그에서 매니페스트:
<application
tools:replace="android:name"
android:name=".DebugApp"
/>
다음과 같은 다른 매니페스트 파일에서 "android:name"을 설정하지 마십시오.
<application android:name=".App">
이와 같이 피쳐 모듈에 정의만 하면 잘 병합됩니다.
<application>
저도 이 문제를 겪으면서 다음과 같이 변경했습니다.
<application android:debuggable="true" android:icon="@drawable/app_icon" android:label="@string/app_name" android:supportsRtl="true" android:allowBackup="false" android:fullBackupOnly="false" android:theme="@style/UnityThemeSelector">
로.
<application tools:replace="android:allowBackup" android:debuggable="true" android:icon="@drawable/app_icon" android:label="@string/app_name" android:supportsRtl="true" android:allowBackup="false" android:fullBackupOnly="false" android:theme="@style/UnityThemeSelector">
floter를 위한 새로운 AndroidManifest.xml 입니다.
<application
android:label="Your app Name"
tools:replace="android:label"
android:name="io.flutter.app.FlutterApplication"
android:networkSecurityConfig="@xml/network_security_config"
android:usesCleartextTraffic="true"
android:icon="@mipmap/ic_launcher">
<어플리케이션>의 첫줄에 안드로이드:label을 추가하도록 해주세요. 위의 예시처럼 정렬되지 않으면 이 패키지 flotter_app_name을 사용하면 오류가 발생하기 때문입니다.
가져오던 프로젝트에서 비슷한 오류가 발생했습니다.
동일한 키를 가진 여러 항목: Android:icon=REFACE 및 도구:icon=REFACE
응용프로그램 태그 내에서 아래 줄을 변경한 후 수정:
tools:replace="icon, label, theme"
로.
tools:replace="android:icon, android:label, android:theme"
언급URL : https://stackoverflow.com/questions/25981156/tools-replace-not-replacing-in-android-manifest
'sourcecode' 카테고리의 다른 글
Perl의 DBI를 사용하여 SQL 주입 공격을 방지하려면 어떻게 해야 합니까? (0) | 2023.10.06 |
---|---|
mysql과 같은 Big Query 변수 설정 (0) | 2023.10.06 |
Larvel 마이그레이션을 통해 열의 기본값 변경 (0) | 2023.10.01 |
행을 열로 동적으로 변환하는 Mysql 쿼리 (0) | 2023.10.01 |
총알 포인트로 UI 레이블을 포맷하시겠습니까? (0) | 2023.10.01 |