26

Không tìm thấy hoạt động nào để xử lý lỗi Intent? Làm thế nào nó sẽ giải quyết.Android: Không tìm thấy hoạt động nào để xử lý lỗi Intent? Làm thế nào nó sẽ giải quyết

Preference customPref = (Preference) findPreference("DataEntryScreen"); 
    customPref 
     .setOnPreferenceClickListener(new OnPreferenceClickListener() { 
     public boolean onPreferenceClick(Preference preference) {     

     Intent i = new Intent("com.scytec.datamobile.vd.gui.android.AppPreferenceActivity"); 
       startActivity(i); 
        return true;           
       } 
      }); 
+0

bạn đã đăng ký bộ lọc ý định ('" com.scytec.datamobile.vd.gui.android.AppPreferenceActivity "') cho hoạt động một cách đáng kinh ngạc chưa? – Karthik

+1

Không. làm thế nào nó có thể? xin vui lòng viết đúng ý định? tôi muốn nói mã số –

+0

đăng tệp kê khai của bạn tại đây, (với mục nhập tương ứng với hoạt động - AppPreferenceActivity). sau đó chúng tôi có thể giúp bạn với mã đúng. – Karthik

Trả lời

40

Thêm bên dưới để biểu hiện của bạn:.

<activity android:name=".AppPreferenceActivity" android:label="@string/app_name"> 
    <intent-filter> 
     <action android:name="com.scytec.datamobile.vd.gui.android.AppPreferenceActivity" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
    </activity> 
+0

Bằng cách nhấp vào Dấu chọn bên cạnh câu trả lời. Xem http: // stackoverflow.com/faq # howtoask – Karthik

+0

Lưu ý rằng thụt đầu dòng trên đoạn trích tắt - 'danh mục' ở cùng mức với 'hành động' - mã đúng nhưng đối với những người có thể nhập 'danh mục' làm yếu tố con. – Andy

+0

@Andy Cảm ơn. Phải, nó có thể gây nhầm lẫn. Đã chỉnh sửa mã. – Karthik

1

ý Ý định = Ý định mới (String) được định nghĩa cho nhiệm vụ tham số, trong khi bạn đang đi qua tham số componentname thành này, sử dụng thay vì:

Intent i = new Intent(Settings.this, com.scytec.datamobile.vd.gui.android.AppPreferenceActivity.class); 
        startActivity(i); 

Trong tuyên bố này thay thế ActivityName bởi Tên của Lớp hoạt động, mã này nằm trong

+0

he constructor Intent (new Preference.OnPreferenceClickListener() {}, Class ) không được xác định –

+0

sử dụng tên hoạt động đầu tiên của bạn thay vì ActivityName thay vì chỉ vì tham số đầu tiên là instance của Activity. – jeet

14

trong trường hợp của tôi, tôi đã chắc chắn rằng hành động là chính xác, nhưng tôi đã đi sai URL, tôi đã thông qua liên kết trang web mà không có http: // trong đó bắt đầu, do đó, nó gây ra cùng một vấn đề, đây là biểu hiện của tôi (một phần của nó)

<activity 
     android:name=".MyBrowser" 
     android:label="MyBrowser Activity" > 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <action android:name="com.dsociety.activities.MyBrowser" /> 

      <category android:name="android.intent.category.DEFAULT" /> 

      <data android:scheme="http" /> 
     </intent-filter> 
    </activity> 

khi tôi mã sau đây, các ngoại lệ tương tự được ném vào thời gian chạy:

Intent intent = new Intent(); 
intent.setAction("com.dsociety.activities.MyBrowser"); 
intent.setData(Uri.parse("www.google.com")); // should be http://www.google.com 
startActivity(intent); 
5

Nói chung để tránh những loại trường hợp ngoại lệ, bạn sẽ cần phải đặt mã của bạn bằng cách thử và nắm bắt như thế này

try{ 

// your intent here 

} catch (ActivityNotFoundException e) { 
// show message to user 
}