Chuyển đổi sang định dạng Dalvik không thành công với lỗi 1 lỗi trên JAR bên ngoài


908

Trong ứng dụng Android của tôi trong Eclipse, tôi gặp lỗi sau.

NGOẠI
TRỪ CẤP ĐỘ CAO NHẤT: java.lang.IllegalArgumentException: đã được thêm: Lorg / xmlpull / v1 / XmlPullParser;
....
Chuyển đổi sang định dạng Dalvik không thành công với lỗi 1

Lỗi này chỉ xuất hiện khi tôi thêm một tệp JAR bên ngoài cụ thể vào dự án của mình. Tôi đã tìm kiếm một thời gian dài cho các giải pháp có thể, nhưng không có giải pháp nào khả thi.

Tôi thậm chí đã cố gắng thay đổi sang Android 1.6 thay vì 1.5 (phiên bản hiện tại tôi sử dụng).


Acticle này có thể giúp bạn khắc phục lỗi này trong trường hợp bạn sử dụng dự án thư viện trong không gian làm việc của bạn.
Nguyễn Minh Bình

4
Tôi đã thử điều này và nó đã đưa ra lỗi tương tự. Cuối cùng tôi đã sửa nó bằng cách thêm thư viện trong Properties-> JavaBuildPath-> Project và thêm thư viện ở đó. Nó được gọi là "Các đối tượng cần thiết trên đường dẫn xây dựng:".

27
Vấn đề này đã trở nên tàn bạo đối với tôi. Nó gần như đủ để từ bỏ mã hóa Android. Không có giải pháp nào phù hợp với tôi. Tôi chỉ đơn giản là phải liên tục cố gắng xuất thất bại với lỗi Dalvik 1 và cuối cùng nó sẽ thành công. Phải mất 15-30 phút để tạo một bản phát hành. Đó là một thảm họa hoàn toàn.
Anthony

Nếu bạn sử dụng hai máy tính trên một không gian làm việc với phần mềm chia sẻ tệp, đôi khi nó sẽ nhân đôi không gian làm việc-> dự án-> bin-> com thư mục như com 1, com 2. Chỉ cần xóa mọi thứ bằng 1 hoặc 2, làm sạch dự án của bạn và bạn đã sẵn sàng đi.
Ozan Atmar

Câu trả lời:


826

Đi đến Dự án »Thuộc tính» Đường dẫn xây dựng Java »Thư viện và xóa tất cả ngoại trừ" Android XY "(trong trường hợp của tôi là Android 1.5). nhấn OK Chuyển đến Dự án »Làm sạch» Làm sạch các dự án được chọn bên dưới »chọn dự án của bạn và nhấp vào OK. Cần làm việc.

Cũng có thể bạn có một tệp JAR nằm ở đâu đó trong các thư mục dự án của bạn (tôi đã sao chép tệp JAR của admob vào thư mục src của mình) và THEN đã thêm nó vào Thư viện đường dẫn Java. Nó không hiển thị trong Gói Explorer, vì vậy bạn không chú ý đến nó, nhưng nó được tính hai lần, gây ra lỗi Dalvik đáng sợ 1.

Một lý do khác có thể là xung đột tên gói. Giả sử bạn có một gói com.abc.xyzvà một lớp có tên A.javabên trong gói này và một dự án thư viện khác (được thêm vào phụ thuộc của dự án này) có chứa cùng một thứ com.abc.xyz.A.java, thì bạn sẽ gặp lỗi tương tự. Điều này có nghĩa là, bạn có nhiều tài liệu tham khảo cho cùng một tệp A.javavà không thể xây dựng nó đúng cách.

Theo những cách khác, điều này có thể xảy ra nếu bạn vô tình hoặc cố ý chỉnh sửa / thêm bất kỳ thứ gì vào tệp đường dẫn lớp theo cách thủ công. Trong một số trường hợp nhất định, chúng tôi có thể thêm đường dẫn android.jar vào tệp classpath để tạo java doc. Khi xóa tệp đó sau khi javadoc được tạo mã sẽ hoạt động tốt. Vui lòng kiểm tra điều này nếu có bất kỳ ai vẫn xảy ra.


4
Tôi đã có cùng một vấn đề và các bước trên của user408841 đã làm việc cho tôi.
Arunabh Das

112
Chào. Nó khắc phục cho tôi chỉ bằng cách vào "Dự án» Làm sạch »Làm sạch các dự án được chọn bên dưới» chọn dự án của bạn và nhấp vào OK. " bỏ qua bit thứ 1
Kurru

79
Tôi khá bối rối với giải pháp này. Nếu bạn loại bỏ tất cả các tệp jar và thư viện, làm thế nào bạn sẽ biên dịch dự án thành công?
Cheok Yan Cheng

3
Tôi thấy rằng cách duy nhất làm việc này đối với tôi là SẠCH TẤT CẢ CÁC DỰ ÁN! Đặc biệt là những dự án mà các dự án vi phạm phụ thuộc vào.
Roy Hinkley

7
Tôi mới phát triển Android đến từ .NET và thành thật mà nói, lỗi này là điển hình cho trải nghiệm của tôi với nó. Nghiêm túc ... bạn có ý định làm gì với thông báo lỗi đó? Nó hoàn toàn vô nghĩa. 'Dalvik' ?? Bạn là gì ?? Đưa tôi trở lại phòng thu hình ảnh: p
David Masters

271

Tôi giải quyết vấn đề.

Đây là một xung đột tập tin JAR.

Dường như tôi có hai tệp JAR trên buildpath của mình bao gồm cùng một gói và các lớp.

smack.jarandroid_maps_lib-1.0.2

Xóa gói này khỏi một trong các tệp JAR đã giải quyết vấn đề.


18
+1 - Tóm lại, đây là xung đột tệp JAR. Cụ thể, đây có thể là một xung đột trong bất kỳ hai tệp JAR nào. Trong trường hợp của tôi, xung đột là giữa jackson-all-1.7.4.jar, jackson-core-asl-1.5.4.jar và jackson-mapper-asl-1.5.4.jar. Tôi đã xóa hai JAR 1.5.4 và để lại tất cả 1.7.4.
jmort253

Nếu bạn có bình trong bất kỳ dự án thư viện nào bạn đã thêm vào dự án của riêng mình, như cách tôi đã thêm ScoreloopUIdự án vào trò chơi AndEngine của mình, những bình này cũng can thiệp vào bạn, mặc dù chúng không nằm trên đường xây dựng dự án của riêng bạn.
pqn

1
Tôi đã chỉ định thủ công android-sdk / platform / android-10 / android.jar trong. Classpath, sau đó tôi đổi thành 2.3.3 (Android 10) trong các thuộc tính dự án khiến cả android.jar bị xung đột. Việc xóa phần bổ sung trong Đường dẫn xây dựng Java đã thực hiện thủ thuật
styler1972

2
Về phía tôi, cuộc xung đột đến từ ActionbarSherlock đã bao gồm gói hỗ trợ Android bao gồm hai lần.
Tobias

Chỉ để biết thông tin: Trong trường hợp của tôi, vì thất bại, đó là mục tiêu Android khác nhau không giống nhau trong cả hai dự án: android: targetSdkVersion = "xx"
Andreas Mattisson

126

Giải pháp Windows 7:

Xác nhận sự cố là do dòng lệnh ProGuard trong tệp
[Thư mục cài đặt SDK Android] \ tools \ proguard \ bin \ proguard.bat

Chỉnh sửa dòng sau sẽ giải quyết vấn đề:

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*

đến

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9

điều này không hiệu quả với tôi, nhưng việc bình luận dòng proguard từ tệp default.properations của tôi đã khiến lỗi không còn nữa. vấn đề của tôi dường như có liên quan đến proguard bằng cách nào đó. tôi chỉ nhận được "Chuyển đổi sang định dạng Dalvik không thành công với lỗi 1" khi cố gắng xuất dự án. có suy nghĩ gì không?
Ben H

tôi đã thử đề xuất trên một lần nữa, và loại bỏ và thêm lại dự án thư viện LVL của tôi, và bây giờ nó hoạt động. không chắc chắn chính xác những gì đã sửa nó, nhưng nó hoạt động. cảm ơn chúa tôi đã lãng phí hàng giờ cho việc này.
Ben H

Windows Vista, và điều này làm việc cho tôi. Trước đây tôi đã thử thay đổi đường dẫn của SDK thành progra ~ 2, cài đặt lại, dọn dẹp dự án, xóa các thư viện và sửa lỗi, v.v ... Cảm ơn bạn!
Mudar

Cảm ơn bạn rất nhiều Nô-ê, điều này cũng có hiệu quả với tôi trên Windows 7. Lỗi bắt đầu sau khi tôi cập nhật ADT lên phiên bản 12.
Kevin

Giải quyết vấn đề của tôi trên Windiws 7.
poiuytrez

94

Bạn có thể giải quyết vấn đề này một cách dễ dàng (với Công cụ dành cho nhà phát triển Android của Eclipse, Build: v22.0.1-685705) bằng cách tắt menu> "Project"> "Build Automatic" trong khi xuất (chưa) ứng dụng Android đã ký. Sau đó, đừng quên bật lại.


2
Điều này đã giải quyết nó trong trường hợp của tôi. Vấn đề khác xảy ra không thường xuyên và không có nguyên nhân rõ ràng (ví dụ: bình hoặc đường dẫn xấu)
Dirk Conrad Coetsee

Điều này đã khiến tôi phát điên! Một giải pháp duy nhất làm việc cho tôi. Tự hỏi tại sao.
PrivusGuru

1
Điều này giải quyết cho tôi - các giải pháp khác có thể cũng có ích, nhưng đây là giải pháp cuối cùng trước khi làm cho nó hoạt động.
pertz

Tôi đã dành 4 giờ để thực hiện mọi đề xuất mà tôi có thể tìm thấy và cuối cùng đã nhận được đề xuất này. Cảm ơn - nó đã giải quyết vấn đề ngay lập tức.
Squonk

Giải pháp rất đơn giản, nhưng nó hoạt động! Tiết kiệm cho tôi vài giờ chiến đấu vô nghĩa với Eclipse. Hãy thử nó trước khi bạn thử bất kỳ giải pháp phức tạp hơn.
fragon

53

Nếu bạn có bản sửa đổi ADT 12+, bạn nên cập nhật proguard của mình từ 4.4 -> 4.6 (như được mô tả ở đây ). Ngoài ra, bạn nên để tập tin ... \ bin \ proguard.bat ở dạng ban đầu.

Chỉ cần tải xuống từ web và sao chép thư mục lib từ gói đã tải xuống vào:

[Thư mục cài đặt SDK Android] \ tools \ proguard \ lib


3
Đây là vấn đề của tôi trên nhiều ADT. Tải xuống và thay thế các JAR proguard hoạt động.
Ông S

Wow, cảm ơn, điều này đã sửa nó cho tôi, mặc dù tôi cũng cần phải làm rõ một số cảnh báo là tốt. stackoverflow.com/q/4525661/38258
Nick Gotch

tôi đã thay đổi phiên bản proguard từ 4.4 thành 4.9, sau đó vấn đề của tôi vẫn chưa được giải quyết.
Hiren Patel

1
Tôi chỉ phải tự làm việc này, đi từ 4.7 -> 4.11 (mới nhất tính đến bây giờ tại đây: sourceforge.net/projects/proguard/files ). Tôi chỉ đổi tên <sdk>/tools/proguardthư mục cũ và chuyển toàn bộ proguard4.11thư mục đã giải nén sang đường dẫn cũ. Voila! Bây giờ nếu chỉ tôi có thể lấy lại giờ trước của mình ... -_-
qix

1
Cảm ơn! Điều này giải quyết vấn đề của tôi ngay. Vấn đề của tôi xảy ra khi tôi cập nhật sdk của mình từ trình quản lý sdk và proguard đã được đặt lại về phiên bản gốc đi kèm với api cấp 11. Sau khi tôi cập nhật proguard, jar lên phiên bản mới nhất. Và nó hoạt động! Tài liệu tham khảo của tôi: java.dzone.com/articles/my-reminder-how-fix-conversion
mmw5610

41

EDIT (giải pháp mới):

Có vẻ như giải pháp trước đây chỉ là một sự bỏ qua. Cuối cùng tôi cũng đã khắc phục được sự cố: Trong trường hợp của tôi, có một sự không phù hợp trong các tệp android-support-v4 trong dự án của tôi và trong dự án Facebook được tham chiếu trong dự án của tôi.

Tôi đã tìm thấy lỗi này bằng cách thực hiện Kiểm tra Lint (Công cụ Android / Chạy Lint: Kiểm tra các lỗi thường gặp)

Giải pháp trước đây của tôi:

Tôi đã thử bất kỳ giải pháp có thể trên trang web này - không có gì giúp được !!!

Cuối cùng tôi đã tìm thấy câu trả lời tại đây: https://groups.google.com/forum/#!topic/actionbarsherlock/drzI7pEvKd4

Các bước dễ dàng:

Đi đến Dự án -> bỏ chọn Xây dựng tự động

Chuyển đến Dự án -> Làm sạch ..., làm sạch cả dự án thư viện và dự án ứng dụng của bạn

Xuất ứng dụng của bạn dưới dạng APK đã ký trong khi Build Automatic vẫn bị tắt


Cảm ơn bạn đã làm việc cho tôi cho dự án js cocos2dx của tôi bằng cách sử dụng nhật thực 23
snowflakes74

Lỗi: Tùy chọn không xác định '0409' trong đối số số 1
Iman Marashi

30

Đây là một kịch bản và giải pháp khác:

Nếu bạn gặp phải vấn đề này gần đây sau khi cập nhật ADT cho Eclipse:

  1. Trong dự án ứng dụng của bạn, hãy kiểm tra mọi thư mục nguồn được liên kết trỏ đến các dự án thư viện của bạn (chúng có tên ở dạng "LibraryName_src").
  2. Chọn tất cả các dự án đó, nhấp chuột phải, chọn " Đường dẫn xây dựng " -> " Xóa khỏi đường dẫn xây dựng ".
  3. Chọn " Đồng thời hủy liên kết thư mục khỏi dự án " và nhấp vào " ".
  4. Làm sạch, xây dựng lại và triển khai lại dự án.

Có vẻ như lý do là một số phiên bản trước đó của các thư mục nguồn dự án Thư viện được liên kết với các dự án "con" và kết hợp ADT / Dex hiện tại không còn tương thích với giải pháp đó nữa.

EDIT: điều này được xác nhận bởi một mục Android Dev Blog, cụ thể là mục này - xem đoạn thứ 8 trở đi.


1
Đây là câu trả lời hữu ích nhất cho vấn đề cụ thể của tôi . Cảm ơn bạn rất nhiều!!!
Bill Ape

Đây là những gì tôi có thể sử dụng thành công, không phải là câu trả lời được đánh giá cao bởi user408841.
rics

29

Đi đến Project và sau đó bỏ chọn "Build Automatic". Sau đó thử xuất dự án và lỗi không còn nữa.


27

Điều này cũng có thể được gây ra nếu bạn đã thêm Android.jartệp vào đường dẫn xây dựng của mình, có lẽ do một sửa chữa nhanh chóng tình cờ trong Eclipse. Xóa nó bằng cách nhấp chuột phải vào Project -> build path -> configure configure build path -> android.jar , remove.


25

Đơn giản chỉ cần làm sạch dự án đã làm việc cho tôi mỗi khi lỗi này xuất hiện.


Khởi động lại Eclipse + làm sạch dự án + xây dựng thủ công làm việc cho tôi.
dodgy_coder

Việc dọn dẹp làm việc cho tôi .... vì vậy nếu bạn có một bản dựng gỡ lỗi tốt mà bạn đã chạy trên điện thoại thực tế và sau đó đi phát hành xuất khẩu và thấy lỗi này ... trước tiên hãy thử làm sạch tất cả các dự án.
lepert

16

Giải pháp của riêng tôi và duy nhất mà tôi tìm thấy ngày hôm nay sau bốn giờ thử nghiệm tất cả các giải pháp, là sự kết hợp của nhiều giải pháp được cung cấp tại đây:

  • Delete dự án từ Eclipse
  • Xóa các tập tin trong \bin\genkhỏi thư mục dự án
  • Xóa tham chiếu đến thư viện thành .classpathtệp trong thư mục gốc của dự án
  • Khởi động lại Eclipse bằng dòng lệnh: eclipse -clean
  • Import dự án
  • Nhấp chuột phải vào dự án - chọn Properties> Java Build Path> Librariesvà loại bỏ tất cả mọi thứ khác hơnAndroid XX.Y
  • Cuối cùng là cleandự án, chờ Tòa nhà tự động hoặcBuild
  • Ra mắt và bây giờ nó hoạt động! Ít nhất là đối với tôi ...

Tôi đã thử từng bước một và nhiều kết hợp, nhưng chỉ có sự thành công của tất cả các bước cùng một lúc đã làm được! Tôi hy vọng tôi sẽ không phải đối mặt với điều này một lần nữa ...


Có một cảnh báo từ một người dùng ẩn danh rằng điều này có kết quả thảm hại. Hãy tự chịu rủi ro!
PaulG

nó hoạt động với tôi nhưng tôi đã không làm: "nhật thực -clean" và không xóa Thư viện.
NicoMinsk

Xóa binthư mục đã làm điều đó cho tôi.
boltup_im_coding

14

Chỉ với những người khác vẫn gặp vấn đề này và họ đã thử các câu trả lời ở trên nhưng vẫn gặp lỗi (đó là trường hợp của tôi), thì giải pháp của tôi là xóa dự án khỏi Eclipse và nhập lại nó.

Điều này làm cho thư viện Android được thêm lại vào các thư viện được tham chiếu của tôi, vì vậy bây giờ tôi có hai tệp JAR của Android được tham chiếu, do đó tôi đã xóa một trong số chúng và bây giờ nó sẽ biên dịch tốt.

Giải pháp: Xóa dự án khỏi IDE Eclipse và sau đó nhập lại nó, sau đó kiểm tra các giải pháp trên.


Cảm ơn! Điều này giúp tôi thoát khỏi trầy xước.
herbertD

10

Ran vào vấn đề này bản thân mình ngày hôm nay. Làm sạch và xây dựng lại không khắc phục vấn đề. Xóa và nhập lại dự án cũng không giúp được gì.

Cuối cùng tôi đã truy tìm nó trở lại một bổ sung xấu cho tập tin. Class của tôi. Tôi nghĩ rằng điều này đã được thêm bởi các công cụ plugin khi tôi đang cố gắng khắc phục sự cố khác, loại bỏ nó đã thoát khỏi định dạng "Chuyển đổi sang định dạng Dalvik không thành công với lỗi xây dựng lỗi 1":

<classpathentry kind="lib" path="C:/dev/repository/android-sdk-windows/platforms/android-3/android.jar">
    <attributes>
        <attribute name="javadoc_location" value="file:/C:/dev/repository/android-sdk-windows/docs/reference"/>
    </attributes>
    <accessrules>
        <accessrule kind="nonaccessible" pattern="com/android/internal/**"/>
    </accessrules>


9

Đối với tôi, một tham chiếu JAR bổ sung đã xuất hiện trong đường dẫn xây dựng của tôi. Tôi đã xóa cái này, và nó hoạt động ngay bây giờ.


8

Vấn đề của tôi là do ADT phiên bản 12.0 và tích hợp ProGuard. Lỗi này là tài liệu tốt và giải pháp là trong tài liệu

Giải pháp là ở đây

Dòng lệnh ProGuard


Cảm ơn Croc, tôi không nghĩ rằng lỗi đó được ghi lại rất rõ - tôi đã không tìm thấy nó sau khi tìm kiếm một giờ để tìm giải pháp.
Kevin

Bạn có thể viết - vấn đề là một thông báo lỗi có quá nhiều nguyên nhân. Google nên có thêm một số tin nhắn để giúp người dùng phác thảo vấn đề. Bạn có thể cảm thấy thoải mái trong thực tế phải mất hai ngày để tôi giải quyết vấn đề khi tôi gặp phải nó ...
Croc

Nhận xét 11 trên trang thảo luận lỗi được liên kết đã giải quyết vấn đề ở đây: đặt đầu ra bản dựng thành Verbose (từ Window> Preferences> Android> Build) và tìm JAR hoặc các lớp mà trình biên dịch đang sử dụng nhưng không nên ở đó. Loại bỏ chúng. Kinh nghiệm xây dựng mà không có bất kỳ vấn đề một lần nữa.
Giulio Piancastelli

8

Tôi đã xử lý vấn đề này khi sử dụng thư viện Sherlock ActionBar trong dự án của mình. Bạn có thể làm bước sau, nó hiệu quả với tôi.

  1. Nhấp chuột phải vào dự án của bạn, chọn thuộc tính.
  2. Một hộp thoại sẽ hiển thị, chọn 'Đường dẫn xây dựng Java' trên menu bên trái.
  3. Xóa 'Phụ thuộc Android' và 'Thư viện riêng của Android' trên bảng bên phải, sau đó nhấp vào OK
  4. Làm sạch dự án của bạn (chọn menu Project -> Clean)
  5. Nhấp chuột phải vào dự án của bạn, chọn Công cụ Android -> Sửa thuộc tính dự án
  6. Làm sạch dự án một lần nữa.
  7. Khởi động lại máy tính của bạn
  8. Mở nhật thực và apk xuất khẩu

Hy vọng rằng sẽ giúp bạn.


Thông báo lỗi của họ nên được chỉ định nhiều hơn. Bạn tiết kiệm thời gian của tôi. Cảm ơn.
teapeng

7

Trong trường hợp của tôi, vấn đề thực sự là với dự án API OpenFeint. Tôi đã thêm OpenFeint làm dự án thư viện:

dự án thư viện]! [1]! [Nhập mô tả hình ảnh ở đây.

Nó cũng được thêm vào đường dẫn xây dựng, công cụ ADT 16 có lỗi với phối cảnh này.

Nhấp chuột phải vào dự án của bạn và nhấp vào đường dẫn xây dựng, định cấu hình đường dẫn xây dựng và sau đó xem hình ảnh và xóa dự án OpenFeint của bạn từ đây và tất cả đã hoàn tất :)

Nhập mô tả hình ảnh ở đây


7

Tôi tìm thấy một cái gì đó khác. Android sử dụng /libsthư mục cho các tệp JAR. Tôi đã thấy lỗi "Chuyển đổi sang định dạng Dalvik không thành công với lỗi 1" nhiều lần, luôn xảy ra khi tôi mắc lỗi trong các tệp JAR của mình.

Bây giờ tôi đã nâng cấp Roboguice lên phiên bản mới hơn bằng cách đưa tệp JAR mới vào /libs thư mục và chuyển đường dẫn lớp sang phiên bản mới. Điều đó gây ra lỗi Dalvik.

Khi tôi xóa một trong các tệp JAR của Roboguice khỏi /libsthư mục, lỗi sẽ biến mất. Rõ ràng, Android chọn tất cả các tệp JAR từ /libsbất kể tệp nào bạn chỉ định trong đường dẫn xây dựng Java. Tôi không nhớ chính xác, nhưng tôi nghĩ Android bắt đầu sử dụng /libstheo mặc định bắt đầu với Android 4.0 (Ice Cream Sandwich, ICS).


7

Cập nhật Proguard lên phiên bản mới nhất đã giải quyết nó cho tôi.

  • Con đường bảo vệ của tôi là C:\Program Files (x86)\Android\android-sdk\tools\proguard\
  • Tôi đã tải xuống phiên bản mới từ đây
  • và thay thế cả thư mục bin và lib

CẢM ƠN!


7

Nói chung, có vẻ như vấn đề này xuất hiện khi có các tệp JAR không cần thiết trong đường dẫn xây dựng.

Tôi đã gặp phải vấn đề này khi làm việc trên IntelliJ IDEA . Đối với tôi điều đó xảy ra vì tôi đã thêm các thư viện JUnitMockito đang được biên dịch trong thời gian chạy. Điều này cần phải được đặt thành "thử nghiệm" trong các thuộc tính mô-đun.


Oh thanx đã đề cập đến "Nói chung, có vẻ như vấn đề này xuất hiện khi có những bình không cần thiết trong đường dẫn xây dựng." Sau khi xóa các lỗi jar không cần thiết đã biến mất. :)
Surendran

6

Không có giải pháp đề xuất nào trước đây làm việc cho tôi. Trong trường hợp của tôi, sự cố đã xảy ra khi tôi chuyển từ tham chiếu thư mục mã nguồn thư viện sang sử dụng tệp JAR của thư viện. Ban đầu, có một dự án thư viện Android được liệt kê trong phần Thuộc tính của dự án ứng dụng Android \ Thư viện Android và thư viện được so sánh trong cây thám hiểm dự án như một liên kết đến thư mục nguồn thư viện.

Ở nơi đầu tiên, tôi vừa xóa liên kết thư mục khỏi cây dự án và tôi đã thêm thư viện JAR vào đường dẫn xây dựng, nhưng điều này gây ra ngoại lệ.

Quy trình đúng là (sau khi thay đổi đường dẫn xây dựng và đưa lại tham chiếu đến nguồn thư viện):

  • xóa đúng liên kết thư mục nguồn thư viện bằng cách thực sự xóa tham chiếu khỏi trang thuộc tính dự án ứng dụng

  • thêm JAR thư viện vào đường dẫn xây dựng dự án ứng dụng như bình thường.


6

Không có giải pháp được liệt kê làm việc cho tôi.

Đây là nơi tôi gặp vấn đề:

Tôi đã thêm tệp JAR bên ngoài jSoup vào đường dẫn dự án của mình bằng cách trước tiên đặt nó vào thư mục nguồn có tên là "libs", sau đó nhấp chuột phải vào tệp đó, Đường dẫn xây dựng -> thêm vào đường dẫn xây dựng. Điều này đã ném lỗi chuyển đổi Dalvik. Nó nói rằng tôi đã "đã bao gồm" một lớp từ tệp JAR đó. Tôi nhìn xung quanh thư mục của dự án và thấy rằng nơi "đã được bao gồm" trên thực tế là binthư mục. Tôi đã xóa tệp JAR khỏi binthư mục và làm mới dự án trong Eclipse và lỗi đã biến mất!


5

Tất cả các giải pháp trên không làm việc cho tôi. Tôi không sử dụng bất kỳ .jar được biên dịch trước. Tôi đang sử dụng các lỗi LVL và Dalvik trong đó tất cả đều liên quan đến thư viện cấp phép thị trường.

Vấn đề đã được giải quyết bằng cách xóa dự án chính và nhập lại (tạo một dự án mới từ các nguồn hiện có).


5

Tôi đã có cùng một vấn đề và không có giải pháp nào trong số này có hiệu quả. Cuối cùng, tôi thấy trong bảng điều khiển rằng lỗi là do lớp trùng lặp (một trong dự án hiện có, một trong tệp jar được thêm vào):

java.lang.IllegalArgumentException: already added: package/MyClassclass;
[2011-01-19 14:54:05 - ...]: Dx1 error; aborting
[2011-01-19 14:54:05 - ...] Conversion to Dalvik format failed with error 1

Vì vậy, kiểm tra nếu bạn đang thêm jar với các lớp trùng lặp trong dự án của bạn. Nếu có, hãy thử loại bỏ một trong số chúng.

Nó làm việc cho tôi.


xem câu trả lời của tôi: stackoverflow.com/questions/2680827/ từ
Michel

5

Thông thường đối với tôi, làm sạch dự án KHÔNG khắc phục vấn đề này.

Nhưng việc đóng dự án trong Eclipse và sau đó mở lại nó dường như sẽ sửa nó trong những trường hợp đó ...


1
Tương tự đối với tôi, đóng Eclipse và bắt đầu lại thường giải quyết nó. Sau đó, tôi nhận được thử, nhưng tôi không thể xuất lần thứ hai, tôi phải khởi động lại.
Ted

5

Tôi gặp vấn đề này nhưng giải pháp của tôi là gấp đôi. 1.) Tôi đã phải thêm phiên bản mục tiêu Android trong dự án -> thuộc tính -> Android . 2.) Tôi không có tất cả google 'tiện ích bổ sung của bên thứ ba'. Nhấn vào đây trong quản lý AVD SDK dưới gói sẵn -> bên thứ ba add-ons -> Google Inc . Tôi đã tải xuống tất cả các SDK và điều đó đã giải quyết vấn đề của tôi.


Giải pháp của tôi khá giống với giải pháp của @THE_DOM. Nhấp chuột phải vào dự án, chọn Công cụ Android, sau đó chọn Thêm thư viện tương thích. Điều này sẽ tải xuống các "tiện ích bổ sung của bên thứ ba" đó nếu bạn không có chúng (giải pháp của THE_DOM), nhưng nó cũng sẽ thêm chúng vào dự án của bạn. Cho dù giải pháp này chỉ là giả dược hay không vẫn chưa được nhìn thấy. :)
Chris

5

Tôi đang sử dụng Android 1.6 và có một tệp JAR bên ngoài. Điều làm việc cho tôi là xóa tất cả các thư viện, nhấp chuột phải vào dự án và chọn Công cụ Android -> * Khắc phục thuộc tính dự án (đã thêm lại Android 1.6) và sau đó thêm lại tệp JAR bên ngoài.


5

Tôi gặp phải vấn đề này vì plugin Android-Maven trong Eclipse dường như không nhận ra các tham chiếu và tham chiếu bắc cầu được tham chiếu hai lần từ một vài dự án (bao gồm cả dự án thư viện Android) và bao gồm cả chúng nhiều lần. Tôi đã phải sử dụng h Focus-p Focus để có được mọi thứ chỉ bao gồm một lần, mặc dù Maven có nhiệm vụ phải lo tất cả việc này.

Ví dụ, tôi đã có một thư viện corementor-core, cũng được sử dụng bởi globalmentor-google và globalmentor-android (sau này là thư viện Android). Trong globalmentor-android, pom.xmltôi đã phải đánh dấu sự phụ thuộc là "được cung cấp" cũng như loại trừ khỏi các thư viện khác trong đó nó được bao gồm quá mức:

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-core</artifactId>
        <version>1.0-SNAPSHOT</version>
        <!-- android-maven-plugin can't seem to automatically keep this from being
             included twice; it must therefore be included manually (either explicitly
             or transitively) in dependent projects -->
        <scope>provided</scope>
    </dependency>

Sau đó, trong ứng dụng cuối cùng, pom.xmltôi đã phải sử dụng thủ thuật phù hợp để chỉ cho phép một đường dẫn bao gồm --- cũng như không bao gồm rõ ràng thư viện lõi:

    <!-- android-maven-plugin can't seem to automatically keep this from being
        included twice -->
    <!-- <dependency> -->
    <!-- <groupId>com.globalmentor</groupId> -->
    <!-- <artifactId>globalmentor-core</artifactId> -->
    <!-- <version>1.0-SNAPSHOT</version> -->
    <!-- </dependency> -->

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-google</artifactId>
        <version>1.0-SNAPSHOT</version>
        <exclusions>
            <!-- android-maven-plugin can't seem to automatically keep this from
                being included twice -->
            <exclusion>
                <groupId>com.globalmentor</groupId>
                <artifactId>globalmentor-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-android</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

Điều kỳ lạ đối với tôi là <extractDuplicates>true</extractDuplicates>trong plugin android-maven đã khắc phục sự cố mvn installnhưng không phải do lỗi mvn deploymà tôi đã mô tả ... thực sự lạ
Karussell

5

Trong trường hợp của tôi

dự án-> thuộc tính- > đường dẫn xây dựng java -> theo thứ tự và tab xuất -> bỏ chọn android-support-v4.jar


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.