2010-05-26 75 views
12

Tôi đang xây dựng ứng dụng thế giới xin chào trên Android trong Netbeans. Nó đang xây dựng đúng cách và tôi cũng có thể chạy trong trình mô phỏng.java.lang.NoClassDefFoundError trong khi chạy thử nghiệm JUnit trong Netbeans

Nhưng khi tạo và chạy thử nghiệm Junit, tôi nhận được java.lang.NoClassDefFoundError.

Làm cách nào để khắc phục sự cố này?

+9

Chỉnh sửa câu hỏi của bạn để bao gồm toàn bộ thông báo lỗi và stacktrace. – BalusC

Trả lời

0

Thông báo lỗi đầy đủ chứa tên của lớp, không được tìm thấy trên đường dẫn lớp. Kiểm tra lại nếu classpath được sử dụng để chạy thử nghiệm bao gồm tất cả các lớp và thư viện cần thiết (tệp lớp của bạn, junit.jar, libaries cụ thể của android).

0

Tôi thấy rằng việc xây dựng lại thường tìm thấy các lớp (vì nó là một vấn đề về classpath). Netbeans dường như tích cực biên dịch các bài kiểm tra hiện có, nhưng mã nguồn chính (từ một thiết lập maven ít nhất) không phải lúc nào cũng có sẵn.

Tôi đã bắt đầu chạy các bản dựng đầy đủ để thử giải quyết vấn đề này. Có thể có một plugin địa chỉ này nhưng tôi chưa tìm thấy nó.

EDIT: This có thể hữu ích.

+0

Tôi nghĩ rằng anh ấy có thêm một vấn đề tích hợp android-netbeans. bạn đã đề cập đến một vấn đề xảy ra nếu biên dịch trên lưu được kích hoạt cho các nguồn dự án quá. – Karussell

16

Kiểm tra tệp kê khai của dự án thử nghiệm của bạn, ví dụ: HelloWorldTest/AndroidManifest.xml. Thuộc tính android:targetPackage của đánh dấu instrumentation nên nhắm mục tiêu gói trong ứng dụng của bạn, ví dụ: com.example.helloworld. Không gói thử nghiệm của dự án thử nghiệm của bạn (ví dụ: com.example.helloworld.test).

+0

* facepalm * bạn vừa lưu tôi 1 giờ tìm kiếm. Đó là một sai lầm phổ biến và tôi có xu hướng bỏ qua nó theo thời gian :) – marsbear

+3

Eh eh _I_ mất một giờ bản thân mình với sai lầm đó. :) –

3

Đơn giản chỉ cần AndroidManifest.xml -> manifest -> package của ứng dụng chính phải khớp với AndroidManifest.xml -> manifest -> instrumentation -> android:targetPackage của ứng dụng thử nghiệm.

+1

Nhưng nếu anh ta chỉ đơn giản là không có thử nghiệm thiết bị đo đạc nhưng đồng bằng cũ jUnit? – JacksOnF1re

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