2012-02-14 7 views
11

Tôi cố gắng để sử dụng Proguard trong một android ứng dụng trong đó sử dụng một dự án thư viện android và tôi nhận được lỗi sau:Android - Proguard nhập zip trùng lặp lỗi

java.io.IOException: Can't write 
    [/private/var/folders/Pg/PgUpPJQ-E5qxL7jX6kpdCE+++TI/-Tmp-/android_3140050575281008652.jar] 
    (Can't read [[email protected]] 
    (Duplicate zip entry 
    [be.class == android_144638064543155619.jar:com/comp/dp/library/R$anim.class])) 
at proguard.OutputWriter.writeOutput(OutputWriter.java:224) 
at proguard.OutputWriter.execute(OutputWriter.java:120) 
at proguard.ProGuard.writeOutput(ProGuard.java:391) 
at proguard.ProGuard.execute(ProGuard.java:152) 
at proguard.ProGuard.main(ProGuard.java:499) 

tập tin proguard.cfg My là this cùng với một vài số -libraryjars đề cập đến rt.jar và một vài thư viện phụ thuộc khác.

Tôi đoán là vấn đề này liên quan đến việc sử dụng Dự án thư viện và người bảo vệ đó đang cố gắng xử lý mục nhập từ dự án thư viện hai lần. Nhưng tôi không chắc chắn nên chọn cách nào để sửa lỗi này.

Mọi đề xuất/chỉ đường đều được đánh giá cao.

Cập nhật 1: Bằng cách xóa -injars bin/classes Tôi đã có thể vượt qua được vấn đề này. Tôi đoán là bởi vì proguard xử lý cả hai dự án thư viện và dự án ứng dụng các tập tin .class của dự án thư viện đã được xử lý hai lần. Khi đã ở trong thư mục bin/classes của dự án thư viện và một lần khác trong thư mục bin/classes của dự án ứng dụng.

+22

'Bằng cách xóa thùng rác/lớp học - ở đâu? –

Trả lời

4

Cập nhật 1 trong câu hỏi đã giải quyết được sự cố của tôi và giờ đây tôi có thể chạy ứng dụng của mình.

Câu trả lời này chỉ nhằm đánh dấu câu hỏi là câu trả lời mà tôi có thể làm sau hai ngày.

+4

lỗi của tôi là một chút khác nhau, nhưng tôi không có "-injars" điều khoản.please giúp tôi, mệt mỏi của điều này! Proguard được trả lại bằng mã lỗi 1. Xem bảng điều khiển Cảnh báo: không thể ghi tài nguyên [META-INF/MANIFEST.MF] (Mục nhập zip trùng lặp [android-support-v4.jar: META-INF/MANIFEST.MF]) Cảnh báo : không thể ghi tài nguyên [META-INF/MANIFEST.MF] (mục nhập zip trùng lặp [library.jar: META-INF/MANIFEST.MF]) – thecr0w

+0

@ thecr0w, bạn đã giải quyết vấn đề này chưa? – l33t

+0

@ l33t, xin lỗi, đã lâu rồi và tôi không thể nói cho bạn điều gì. – thecr0w

1

Nếu bạn nhận được mục nhập zip trùng lặp, điều đó có nghĩa là nó nói, mở bình và kiểm tra các bản sao.

Ví dụ kiểm tra build.xml của bạn không chứa bất cứ điều gì như

<zipfileset src="${file.reference.joda-time-2.2.jar}" includes="**/*.class"/> 
<zipfileset src="${file.reference.joda-time-2.2.jar}" includes="**/*"/> 

Điều đó sẽ bao gồm các tập tin .class hai lần!