2012-05-07 34 views
11

Vì tôi đã cập nhật ADT thành 19, tôi bắt đầu nhận được lỗi sau. Sự cố xảy ra bất cứ khi nào tôi khởi động ứng dụng của mình. Tôi đã kiểm tra tất cả các bài viết trước liên quan đến điều này, nhưng có vẻ như không ai trong số họ giúp. bất kỳ ý tưởng sẽ được đánh giá rất nhiều ...ClassNotFoundException sau khi nâng cấp lên ADT 18

Thiết lập của tôi

  1. Tôi hiện đang có ADT 18, SDK 19, elcipse trong Windows 7 64bit.
  2. Tôi sử dụng dự án thư viện làm cho ashare.jar và tất cả các jars bên ngoài của tôi (ví dụ: dropbox, commons codec) nằm trong thư mục "libs" trong dự án Thư viện (Ashare).
  3. Tôi không sử dụng proguard.

Cách chúng tôi thấy sự cố này.

  1. Tạo apk trong eclipse> {MyProject}> Nhấp chuột phải> Android Tools> Export ký ứng dụng gói
  2. cài đặt các gói ứng dụng trong giả lập hoặc dev.phone sử dụng "adb cài đặt XXX.apk"
  3. Bắt đầu ứng dụng. Sau đó, BOOM. nó ném lỗi.

Một số điều đáng chú ý là

  1. Nó bắt đầu xảy ra sau khi tôi cập nhật để ADT trong nhật thực của tôi lên phiên bản 18
  2. Nó chỉ xảy ra khi tôi làm apk ký và chạy nó trong giả lập hoặc dev. điện thoại.
  3. Tôi không thấy vấn đề gì nếu tôi chạy ứng dụng của mình bằng cách sử dụng {MyProject}> Nhấp chuột phải> Chạy dưới dạng> Ứng dụng Android
  4. Khi tôi kiểm tra bên trong classes.dex, tôi thấy một số lớp bị thiếu ở đó. Tôi không chắc chắn, nhưng tôi cảm thấy quá trình xây dựng không bao gồm tất cả các lớp học trong classes.dex
  5. Trong xuất khẩu, không có lỗi trong nhật thực console (Tôi sử dụng tùy chọn tiết trong Android> Xây dựng> Xây dựng thiết lập đầu ra)

Java Exception

05-07 08:52:48.336: D/AndroidRuntime(3055): Shutting down VM 
05-07 08:52:48.336: W/dalvikvm(3055): threadid=1: thread exiting with uncaught exception (group=0x40a3e1f8) 
05-07 08:52:48.340: E/AndroidRuntime(3055): FATAL EXCEPTION: main 
05-07 08:52:48.340: E/AndroidRuntime(3055): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.acj0.barcodeexpdemo/com.acj0.barcodeexpdemo.Launcher}: java.lang.ClassNotFoundException: com.acj0.barcodeexpdemo.Launcher 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1880) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread.access$600(ActivityThread.java:123) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.os.Looper.loop(Looper.java:137) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread.main(ActivityThread.java:4424) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at java.lang.reflect.Method.invoke(Method.java:511) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at dalvik.system.NativeStart.main(Native Method) 
05-07 08:52:48.340: E/AndroidRuntime(3055): Caused by: java.lang.ClassNotFoundException: com.acj0.barcodeexpdemo.Launcher 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.Instrumentation.newActivity(Instrumentation.java:1023) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  ... 11 more 

CẬP NHẬT 5/7/2012

  • Tất cả lọ của tôi là trong "libs" thư mục của thư viện dự án và tôi thấy tất cả trong số họ bao gồm trong "Dependencies Android"

CẬP NHẬT 2012/05/18 - TẠM SOLVED

  • tôi tìm thấy giải pháp tạm thời. Ngay trước khi chạy "Xuất gói ứng dụng đã ký", tôi đã chọn "Làm sạch" KHÔNG CÓ "xây dựng tự động" tùy chọn được chọn. Sau đó, tôi không thấy lỗi nữa. Tôi không biết tại sao nó hoạt động. Nếu bạn có bất kỳ ý tưởng, xin vui lòng cho tôi biết.
+0

Đăng nguồn của các lớp bạn tìm thấy bị thiếu trong tệp dex của bạn. Cũng cố gắng nắm bắt logcat được tạo ra trong quá trình odex khi gói ứng dụng được cài đặt. –

+0

Tôi gặp sự cố tương tự ... Các thư viện có được bao gồm trong thư mục có tên là lib không? Hoặc libs? Bạn nên đi với một thứ hai ... – Shine

+0

Tôi đã có ngoại lệ tương tự ném khi tôi cập nhật phiên bản SDK. Câu hỏi và câu trả lời là ([ở đây] (http://stackoverflow.com/questions/9831019/updated-sdk-version-getting-classnotfoundexception-android-support-v4-view-vie)) – wdziemia

Trả lời

2

Đặt các chai bên ngoài của bạn vào thư mục libs. Bạn có thể xem this link

+0

Cảm ơn lujop. Tôi có tất cả các lọ của tôi trong thư mục "libs" và tôi có thể thấy tất cả những cái đó được tự động đưa vào Android Dependencies. – ChrsitopherJ

+0

Bạn có sử dụng proguard không? – lujop

+0

No. chúng tôi không sử dụng proguard. Vấn đề này đang xảy ra mà không có bất kỳ cấu hình proguard nào. – ChrsitopherJ

1

Tôi có cùng một sự cố, mặc dù tôi đã làm mọi thứ như được mô tả trong link lujop mentioned. Đây là những gì là mất tích:

  1. Nhấp chuột phải vào dự án của bạn> Build Path> Configure Build Path ...
  2. Nhấp vào tab "Đặt hàng và xuất khẩu"
  3. Tick các hộp kiểm bên cạnh các thư viện (Android xxx, Android Dependencies) và dự án khác mà bạn đang đề cập đến
  4. sạch dự án của bạn
  5. đó nên là nó

tôi hy vọng rằng sẽ giúp!

0

Điều này đã khiến tôi cảm thấy buồn chán cả ngày, chỉ để nhận ra tên ứng dụng ngớ ngẩn trong tệp kê khai là sai. Đối với tên ứng dụng tôi đã: android: name = "com.diack.locdatafeeds"

nó đã mất tích của tôi hoạt động chính android: name = "com.diack.locdatafeeds.Mainactivity"

Hy vọng nó giúp ai đó

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