2011-11-07 45 views
6

Cho dự án Android trong Eclipse xây dựng từ 2 dự án: Dự án 1 là thư viện Java, chỉ biên dịch tốt trên Android. Dự án 2 là các trường hợp kiểm tra cho thư viện, về cơ bản các lớp mở rộng AndroidTestCase và xuất kết quả lên bảng điều khiển Android. Dự án 1 là dự án Java, Dự án 2 là dự án Android tùy thuộc vào Dự án 1.thực hiện testcase android từ Eclipse so với giao diện điều khiển từ xa trên bàn điều khiển

Mô tả sự cố: Nếu tôi thực hiện các kiểm tra từ Eclipse như Android JUnit Thử nghiệm chúng chạy đúng như chúng không có lỗi. Tuy nhiên, nếu tôi muốn thực hiện chúng một lần nữa bằng dòng lệnh:

adb shell am instrument -w bla.bla/android.test.InstrumentationTestRunner

tôi nhận được rất nhiều

Cannot load class. Make sure it is in your apk. Class name: xyz 
java.lang.ClassNotFoundException: xyz 
    at java.lang.Class.classForName(Native Method) 
    at java.lang.Class.forName(Class.java:234) 
    at android.test.ClassPathPackageInfoSource.createPackageInfo 
    .... 

Caused by: java.lang.ClassNotFoundException: xyz in loader 
    dalvik.system.PathClassLoader[/system/framework/android.test.runner.jar:/data/app/bla.apk] 
    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 
    .... 

sai sót trong logcat.

Quan sát: Eclipse cài đặt .apk. Sau đó, tôi thực hiện cùng một cài đặt .apk, vì vậy các lớp có sẵn phải giống nhau. Các lớp học được yêu cầu động với Class c = Class.forName("xyz").

Vì vậy, câu hỏi của tôi là, Eclipse thực thi cài đặt .apk khác nhau sao cho các lớp thích hợp được tìm thấy trong thời gian chạy?

+1

Tôi có thể đề xuất cách tốt hơn để kiểm tra ứng dụng Android của bạn không? Tôi sử dụng nó và nó tuyệt vời: http://pivotal.github.com/robolectric/. Không có trình mô phỏng, không có dự án thử nghiệm riêng biệt ... và tôi có thể thực hiện TDD, lặp lại nhanh chóng. –

Trả lời

2

Bạn có chắc xyz.class nằm trong CLASSPATH không?

Tôi đã có cùng một vấn đề và chỉ là điều này!

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