2014-11-17 12 views
14

Để dự án ứng dụng Android của tôi, tôi đã thêm một mô-đun có chứa hoạt động có tên "SampleDataMenuActivity". Không có gì đặc biệt đối với hoạt động này - nó được thêm bằng hộp thoại "Mô-đun mới" -> "Thư viện Android" trong Android Studio và bao gồm mã "Hello World" do Android Studio tạo.Không thể khởi chạy hoạt động trong Mô-đun thư viện Android

Các AndroidManifest.xml của ứng dụng bao gồm (từ module):

<activity 
    android:name="com.sample.sampledata.SampleDataMenuActivity" > 
    <intent-filter> 
     <action android:name="android.intent.action.SampleDataMenuActivity" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 

Trong build.gradle của ứng dụng:

dependencies { 
    (...) 
    compile project(':sampledata') 
} 

Trong settings.gradle của dự án:

include ':sampledata', ':app' 

Trong hoạt động chính của ứng dụng, tôi muốn điều hướng đến hoạt động trong mô-đun bằng cách sử dụng:

startActivity(new Intent("com.sample.sampledata.SampleDataMenuActivity")); 

Dự án được xây dựng tốt, nhưng khi tôi chạm vào nút đó nên đưa tôi đến hoạt động trong module nó không thành công, báo cáo:

android.content.ActivityNoFoundException: No Activity found to handle Intent (act=com.sample.sampledata.SampleDataMenuActivity) 

đã làm tôi nhớ gì?

Trả lời

7

Tôi đã tìm thấy lỗi và có lẽ tôi nên xóa câu hỏi. Nhưng khi nó được bỏ phiếu tán, somone khác có thể quan tâm câu trả lời này:

Các biểu hiện cần nêu:

<activity 
    android:name="com.sample.sampledata.SampleDataMenuActivity" > 
    <intent-filter> 
     <action android:name="com.sample.sampledata.SampleDataMenuActivity" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 
+0

Tại sao lại có trong ? Chỉ tò mò thôi. Tôi muốn làm điều tương tự. – hadez30

+1

Có lẽ nhiều người có khả năng hơn để trả lời câu hỏi này nhưng tôi sẽ thử: Khi bắt đầu một hoạt động bằng cách sử dụng 'startActivity (new Intent (" ")' ứng dụng tìm kiếm một mục đích khớp với tên hành động và sau đó khởi chạy Để khởi chạy một hoạt động, bạn có thể đặt tên cho bất kỳ tên nào bạn muốn, nhưng theo hiểu biết của tôi, sử dụng đường dẫn đầy đủ của lớp hoạt động được coi là thực hành tốt và làm cho mã của bạn dễ đọc hơn và có thể bảo trì được .. – jerry

+0

Tuyệt vời, cảm ơn! Điều đó có ý nghĩa. :) – hadez30

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