2013-05-17 30 views
17

Gần đây tôi đã nâng cấp ADT lên phiên bản 22. Sau khi tôi đã làm như vậy, trước tiên tôi đã gặp lỗi với thư viện hỗ trợ của tôi (dựa trên một dự án thư viện khác). Sau khi tôi đã sao chép các thư viện hỗ trợ cho dự án của tôi và làm sạch tất cả các dự án của tôi, tôi tiếp tục nhận được các lỗi sau đây khi tôi cố gắng để khởi động ứng dụng của tôi:Android - Không thể khởi tạo hoạt động - Không tìm thấy lớp học ngoại lệ sau khi nâng cấp lên ADT 22

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.d.d/com.d.d.MainActivity}: java.lang.ClassNotFoundException: com.d.d.MainActivity 

(Tôi đã đổi tên thành tên gói thực để com.dd)

Nhưng điều khiến tôi nghi ngờ rằng đó là một nguyên nhân gây ra những thay đổi thư viện hỗ trợ, là dòng sau:

at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 

nó giữ cho tôi nghi ngờ bởi vì khi tôi đã sai lầm với các thư viện hỗ trợ trước đây, tôi nhận được nhiều er rors có liên quan đến dex một cái gì đó.

Không cần phải nói, AndroidManifest chứa đường dẫn chính xác cho hoạt động.

Mọi trợ giúp sẽ được đánh giá cao ở đây. Cảm ơn rất nhiều.

Trả lời

83

Có thể là bản sao của this.

Try going to Project -> Properties -> Java Build Path -> Order & Export and ensure Android Private Libraries are checked for your project and for all other library projects you are using. Clean all projects afterwards and see what happens.

+0

Đây là câu trả lời đúng, cảm ơn bạn rất nhiều! – MrByte

+0

Yea này giải quyết nó cho tôi quá. Có vẻ như nội dung của thư mục/libs của bạn giờ đã được biên dịch theo Thư viện Riêng tư Android ... ngoại trừ khi bạn cập nhật ADT mới, bạn cần kiểm tra xem trong Thuộc tính dự án hay không thì nó sẽ không được đưa vào biên dịch. Android Studio ở đây chúng tôi đến – JMRboosties

+0

Cảm ơn nó đã hoạt động. Chỉ là một câu hỏi, điều gì sẽ xảy ra khi chúng tôi kiểm tra bất kỳ thư viện cụ thể nào? Ngay cả SDK đang được sử dụng để biên dịch nhưng nó không được kiểm tra. –

6

@Krauxe Cảm ơn bạn rất nhiều vì đã cung cấp câu trả lời này!

Tuy nhiên, tôi đã phải sử dụng phương pháp được điều chỉnh một chút theo cách trong Eclipse của tôi (Phiên bản: 3.7.2).

  1. Dự án - Properties - Java Build Path - tự & Xuất
  2. Kiểm tra Libraries Private Android (còn được sử dụng cho các dự án thư viện)
  3. Dự án - Sạch ... - Làm sạch tất cả các dự án
+0

cảm ơn. . giải pháp đúng .. – JohnRaja

1

Ở đây, chúng ta phải thêm thư mục src làm thư mục nguồn. Đối với một số lý do ràng buộc biến mất.

  1. Nhấp chuột phải vào thư mục src của bạn.
  2. Đường dẫn xây dựng -> Sử dụng làm thư mục nguồn
+0

Wow, tôi đã dành quá nhiều thời gian để cố gắng tìm ra điều này. Tôi tiếp tục tìm câu trả lời cho ở trên, nhưng giải pháp của bạn là những gì tôi thực sự cần. Tôi muốn cập nhật ứng dụng của mình sau một thời gian dài, vì vậy có thể đó là lý do tại sao thiết lập thay đổi một chút (làm phiền đến mức nào). Cảm ơn. : D –

0

Tôi cũng gặp vấn đề tương tự. Giải pháp là thay đổi thư mục đầu ra thành bin/classes.

  1. Nhấp chuột phải vào dự án
  2. Chọn Properties
  3. Chuyển đến Java Build Path> Nguồn
  4. Set thư mục mặc định sản lượng vào/bin/classes

Greetings, Martin

0

nếu bạn đã thử tất cả các câu trả lời vẫn gặp sự cố thì có thể tên hoạt động không khớp với pac tên kage trong AndroidManifest.xml. ví dụ: xml của bạn như thế này.

<activity 
    android:name="com.tony.HomeActivity" 
    android:screenOrientation="portrait" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

nhưng HomeActivity thực sự trong gói com.tony.ui.HomeActivity.

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