Android studio Lỗi biểu tượng Gradle, Sáp nhập Manifest


141

Tôi tiếp tục nhìn thấy tin nhắn này và không biết làm thế nào để giải quyết nó cho tốt.

Error:(43, 9) Attribute application@icon value=(@drawable/new_app_icon) from AndroidManifest.xml:43:9
    is also present at com.github.erizet.signala:signala-longpolling:0.20:7:18 value=(@drawable/ic_launcher)
    Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:40:5 to override
:OpenBook:processDebugManifest FAILED
Error:Execution failed for task ':OpenBook:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs

Đã thử thêm android:replace="android:icon"vào bảng kê khai của tôi ngay cả với biểu tượng của tôi.

Tôi đã cố xóa android:icon="@drawable/ic_launcherthư viện nhưng nó vẫn quay trở lại khi tôi xây dựng vì nó được nhập từ maven

Có ý kiến ​​gì không?


Sự cố này xảy ra khi sự cố trong thẻ tệp kê khai. Vui lòng kiểm tra câu trả lời stackoverflow.com/a/39509659/2732632
Kimmi D Breathra

Tôi gặp phải vấn đề tương tự khi tôi thêm các quyền trùng lặp trong tệp kê khai.
Triển khai

Câu trả lời:


342

Nó dường như là lỗi của công cụ Sáp nhập chính cho lớp.

http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger

Đã giải quyết nó bằng cách thêm vào thẻ kê khai của tôi xmlns:tools="http://schemas.android.com/tools"

Sau đó thêm vào tools:replace="android:icon,android:theme"thẻ ứng dụng

Điều này cho biết sự hợp nhất để sử dụng biểu tượng và chủ đề của tôi chứ không phải của các thư viện khác

Hy vọng nó sẽ giúp cảm ơn


6
Vấn đề vẫn còn tồn tại đối với tôi. Làm việc trong Android Studio 1.1.
Xu hướng

1
Cảm ơn! Làm việc cho tôi
Sandeep

4
Phiên bản mới nhất của Android 2.0. không làm việc. Bất cứ ai trả lời nên cập nhật Q này nếu anh ta có nghĩa là cứu các thế hệ khác, điều đó sẽ sớm trở nên vô dụng
Karue Benson Karue

3
Studio 2.2 từ hôm nay đều có vấn đề này và không giải quyết được vấn đề này
Prasad

2
không hoạt động cho Android Studio 2.2 với gradle 2.2.0.
DysaniazzZ

54

Tôi có một vấn đề tương tự, tôi sửa nó như thế này bằng cách thêm xmlns:tools="http://schemas.android.com/tools"vào đầu tệp mainfest và thêm tools:replace="android:icon"vào để trông giống như

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"  // add tools line here 
    package="yourpackage">


    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:replace="android:icon"> ///add this line 

.....

</application>

</manifest>

1
không hoạt động cho Android Studio 2.2 và gradle 2.2.0.
DysaniazzZ

câu trả lời tuyệt vời
Gundu Bandgar

10

Tôi có lỗi tương tự, chỉ cần mã này giải quyết vấn đề của tôi, tôi muốn chia sẻ với bạn:

trong Manifest.xml:

  • thêm mã này vào đầu tệp xml của bạn:

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

  • Sau đó thêm vào:

    tools:replace="android:icon,android:theme,android:label,android:name" vào thẻ ứng dụng


@DysaniazzZ, nó không phụ thuộc vào Android Studio. xem nhật ký tin nhắn.
Adnan Abdollah Zaki

Được rồi, tôi sẽ xem.
DysaniazzZ

@Funwise, kiểm tra nhật ký tin nhắn của bạn, tôi nghĩ rằng nó không phụ thuộc vào studio android.
Adnan Abdollah Zaki

@ adnan9011, vấn đề của tôi là có quyền trùng lặp trong tệp Manifest.
Darush

9

Câu trả lời của shimi_tap là đủ. Điều cần nhớ là chỉ chọn những gì bạn cần. Chọn từ {biểu tượng, tên, chủ đề, nhãn}. Tôi đã thêm tools:replace="android:icon,android:theme", nó không hoạt động. Tôi đã thêm tools:replace="android:icon,android:theme,android:label,android:name", nó không hoạt động. Nó hoạt động khi tôi thêm tools:replace="android:icon,android:theme,android:label". Vì vậy, tìm hiểu chính xác những gì xung đột trong các tệp kê khai của bạn.


1
không hoạt động cho Android Studio 2.2 và gradle 2.2.0.
DysaniazzZ

5

Chỉ cần thêm xmlns:tools="http://schemas.android.com/tools"vào thẻ kê khai của bạn, và sau đó bạn cần thêm tools:replace="android:icon" trước đó android:icon="@mipmap/ic_launcher" .


3

Lỗi này cũng xảy ra khi minSdk của ứng dụng của bạn cao hơn bất kỳ minSdk nào của thư viện.

app's minSdk >= libraries minSdk

1
vậy giải pháp là gì?
itzhar

2

GOT GIẢI PHÁP SAU KHI THỜI GIAN GOOGLING

chỉ cần lấy ic_launcher của bạn và dán nó vào thư mục drawables của bạn,

Chuyển đến bảng kê khai của bạn và thay đổi android: icon = "@ drawable / ic_launcher"

Làm sạch dự án của bạn và xây dựng lại

Hy vọng nó sẽ giúp bạn


2

Tôi gặp vấn đề này khi thay đổi biểu tượng từ drawable sang mipmap.

Tôi chỉ bỏ lỡ dòng

tools:replace="android:icon"

trong bảng kê khai.


1

Vì một số lý do, studio android không thích gọi biểu tượng ứng dụng từ thư mục drawable. Vì vậy, trong trường hợp đó tôi đã tạo thư mục tài nguyên mipmap trong thư mục res.

Nhấp chuột phải vào thư mục res> mới> thư mục tài nguyên android> loại tài nguyên: mipmap và bây giờ thả bất kỳ biểu tượng nào trong đó sau đó tham chiếu tệp đó vào tệp kê khai. Chia sẻ điều này vì phương pháp này làm việc cho tôi.

android: icon: @ drawable / ic_launcher "

đến

android: icon = "@ mipmap / ic_launcher"


đối với tôi, thiết lập kiểu có vẻ tốt nhất android:theme="@style/AppTheme" -> gist.github.com/CrandellWS/4d284b11b5bca3054bddf8f511e49ae9
CrandellWS

1

Nếu không có gì hoạt động, hãy đóng Android Studio. Truy cập app / src / main, mở tệp AndroidManifest.xml trong trình soạn thảo văn bản (như cao siêu), xóa / thay thế các dòng erros, lưu và mở lại studio android.


1

Khi một giá trị thuộc tính chứa một trình giữ chỗ (xem định dạng bên dưới), phép hợp nhất tệp kê khai sẽ hoán đổi giá trị giữ chỗ này với một giá trị được chèn. Các giá trị được chèn được chỉ định trong build.gradle. Cú pháp cho các giá trị giữ chỗ là $ {name} vì @ được dành riêng cho các liên kết. Sau khi hợp nhất tệp cuối cùng xảy ra và trước khi tệp kê khai android được hợp nhất kết quả được viết ra, tất cả các giá trị với một trình giữ chỗ sẽ được hoán đổi với các giá trị được chèn. Một sự phá vỡ xây dựng sẽ được tạo ra nếu một tên biến không xác định.

từ http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-Build-error


0

Câu trả lời của Shimi_tap là cách đúng đắn để khắc phục vấn đề. Nếu bạn muốn sử dụng công cụ sáp nhập cũ, bạn có thể thêm công cụ này vào tệp build.gradle

android {useOldManifestMerger đúng}


2
"Trong 1.0, chúng tôi đã loại bỏ khả năng gọi phép sáp nhập bảng kê khai cũ. .." tools.android.com/tech-docs/new-build-system/user-guide/ Lỗi
devgrg 7/07/2015

Không thể tìm thấy phương thức useOldManifestMerger () cho các đối số [true] trên dự án ': app' thuộc loại org.gradle.api.Project.
DysaniazzZ

0

Đối với tôi, sự cố này xảy ra sau khi cập nhật Dịch vụ Google Play. Một trong những thư viện tôi đang sử dụng đã kết hợp thư viện này bằng cách sử dụng "+" trong tham chiếu lớp của nó, như

compile 'com.google.android.gms:play-services:+'

Điều này tạo ra một vấn đề vì phiên bản tối thiểu được thư viện đó nhắm mục tiêu ít hơn so với phiên bản hiện tại của Dịch vụ Google Play. Tôi tìm thấy điều này bằng cách đơn giản là tìm kiếm trong các bản ghi.


0

Trong .gradlethay đổi của bạn MinSDK, ví dụ:

  • build.gradle (Mô-đun: ứng dụng)
    • trước: minSdkVersion 9
    • sau: minSdkVersion 14

Vân vân.


0

Tôi đã thử tất cả các giải pháp được đề cập ở trên

trong Manifest.xml:

  • thêm mã này vào đầu tệp xml của bạn trong thẻ kê khai:

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

  • Sau đó thêm vào:

    tools:replace="android:icon,android:theme,android:label,android:name" vào thẻ ứng dụng

nhưng không ai trong số họ làm việc Tôi cần xóa một tệp xml nằm ở

mipmap-anydpi-v26 / ic_launcher_round.xml

Tôi đã thử nghiệm ứng dụng trong

Samsung Galaxy 8 với phiên bản HĐH 8.0.0

nó thực sự là một giải pháp?


0

Trong tệp AndroidManifest.xml, thêm phần sau vào applicationnút:

tools:replace="android:appComponentFactory,android:icon,android:theme,android:label,android:name"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.