2012-04-10 44 views

Trả lời

9

Sau khi tìm kiếm thông qua các diễn đàn khác nhau, Google và stackoverflow, tôi dường như nhận được một giải pháp của bản thân mình và nghĩ đến việc chia sẻ nó.

  1. Bất cứ khi nào bạn đang liên kết các thư viện bên ngoài, tốt hơn liên kết nó bằng cách tạo ra một thư mục/lib và đổ những .jars đó (có nghĩa là để sao chép các tập tin và KHÔNG liên kết chúng). Liên kết chúng bằng cách sử dụng Eclipse -> Xây dựng Thuộc tính -> Định cấu hình Đường dẫn xây dựng -> tab Thư viện -> Thêm các Chum bên ngoài. Thêm các yêu cầu .jars được lưu trong thư mục/lib trong thư mục này. (Lưu ý rằng, lọ được bao gồm dưới dạng "Thư viện tham chiếu" trong Eclipse sẽ biến mất trong thư mục/lib! Nhưng, đừng lo lắng khi liên kết thích hợp đã xảy ra. Lưu ý khác là kiểm tra xem bình/lib đã được tham chiếu KHÔNG được hiển thị trong tab Thư viện của Thuộc tính Xây dựng vì nó sẽ được kế thừa.)

  2. Một vấn đề lớn khác là khi API Google đang được sử dụng. Đặc biệt là những cái, sử dụng một số hàm thư viện cốt lõi của java/javax. Hãy rất cẩn thận về điều này. Lỗi là, DalvikVM cố gắng liên kết những điều này nhưng không thành công vì có một bản sao được tìm thấy và không thể quyết định cái nào cần tham chiếu đến. Dưới đây là lỗi.

    Dx trouble processing "javax/xml/namespace/QName.class": 
    Ill-advised or mistaken usage of a core class (java.* or javax.*) when not building a core library. 
    

Trong trường hợp này, những gì tôi đã quan sát thấy là, lớp này được sử dụng trong xpp3-1.1.4c.jar. Nếu bạn đã sao chép thư mục này vào thư mục/lib của mình, XIN XÓA NÓI. Sau đó làm sạch dự án và tạo một bản dựng mới. Và con tàu buồm trôi chảy sau đó.

Thực hiện việc này cho các tệp tham chiếu khác được tham chiếu nếu có sự trùng lặp đó.

Chúc mừng!

+0

Cảm ơn bạn rất rất nhiều ...... –

+0

Bài đăng của bạn đã giải quyết được vấn đề lớn của tôi .... Cảm ơn bạn một lần nữa và tôi không thể bỏ phiếu cho bạn rất nhiều lần xin lỗi –

+0

Cảm ơn rất nhiều, bạn đã giải quyết được vấn đề của mình quá!! – Crocodile

2

Điều này phù hợp với tôi. Tôi đang sử dụng maven, và sự phụ thuộc xpp3-1.1.4c xuất hiện trong "Maven Dependencies"; Tôi phải loại trừ nó bằng cách sử dụng (nhấp chuột phải vào phụ thuộc) Maven-> "Loại trừ Maven Artifact ...". Cảm ơn một loạt - điều này thực sự mơ hồ.

1

Lỗi này chỉ hiển thị khi bạn cố gắng tạo APK đã ký. Có 2 cách để sửa lỗi này.

1. Như đã nhận xét Amira Elsayed Ismail trong bài đăng này this chúng ta nên hoàn nguyên về mức 2.3.3.

Để làm điều này bạn cũng nên tải về Android Studio 2.3.3 vì phòng thu 3.0.1 yêu cầu gradle Plugin 3.0+

Đây là giải pháp đầu tiên. Tuy nhiên, việc hoàn nguyên Android Studio và plugin bổ túc là một giải pháp đau đớn.

2.Giải quyết tất cả xung đột phụ thuộc.

Khi tôi hoàn nguyên gradle, Studio 2.3.3 cho thấy chúng tôi cảnh báo quan tâm (tôi không biết tại sao studio 3.0.1 không hiển thị cảnh báo xung đột phụ thuộc)

Warning:WARNING: Dependency xpp3:xpp3:1.1.4c is ignored for debug as it may be conflicting with the internal version provided by Android. Warning:WARNING: Dependency org.apache.httpcomponents:httpclient:4.3.3 is ignored for debug as it may be conflicting with the internal version provided by Android.

Vì vậy, những phụ thuộc sẽ được bỏ qua cho debug nhưng KHÔNG CHO BẢN TIN. Tôi đã sửa lỗi này bằng cách loại trừ những phụ thuộc này.

configurations { 
     all*.exclude group: 'xpp3', module: ['xpp3' ,'httpclient'] 
    } 

Sau này, tôi đã tạo APK đã ký thành công bằng cách sử dụng phiên bản 3.0.1. (không hoàn nguyên).

+2

Vui lòng cung cấp một số thông tin về cách mã ở trên trả lời câu hỏi để cải thiện câu trả lời này. –

+0

@EricHauenstein i đã cập nhật câu trả lời. –

Các vấn đề liên quan