Android: не найдена активность для обработки намеренной ошибки?Как это решит - PullRequest
32 голосов
/ 06 февраля 2012

Не найдена активность для обработки намеренной ошибки?Как это решит.

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;                                        
               }
           });

Ответы [ 4 ]

43 голосов
/ 06 февраля 2012

Добавьте в манифест ниже:

16 голосов
/ 23 декабря 2013

в моем случае, я был уверен, что действие правильное, но я передавал неправильный URL, я передал ссылку на сайт без http: // в его начале, поэтому это вызвало ту же проблему, вот мой манифест ( часть этого)

<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>

когда я кодирую следующее, то же исключение выдается во время выполнения:

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);
7 голосов
/ 11 января 2017

Как правило, чтобы избежать такого рода исключений, вам нужно окружить свой код, попробовав и поймав вот так

try{

// your intent here

} catch (ActivityNotFoundException e) {
// show message to user 
}
1 голос
/ 06 февраля 2012

Intent intent = новый Intent (String) определен для параметра задача, в то время как вы передаете в него имя компонента параметра, вместо этого используйте:

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

В этом операторе замените ActivityName на Имя класса деятельности, в котором находится этот код.

...