インテントエラーを処理するアクティビティが見つかりませんか?解決方法。
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;
}
});
以下をマニフェストに追加します。
<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>
私の場合、私はアクションが正しいと確信していましたが、間違った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);
一般に、この種の例外を回避するには、次のように試行してキャッチしてコードを囲む必要があります。
try{
// your intent here
} catch (ActivityNotFoundException e) {
// show message to user
}
Intent intent = new Intent(String)はパラメーターtaskに対して定義されていますが、パラメーターcomponentnameをこれに渡すので、代わりに次を使用します。
Intent i = new Intent(Settings.this, com.scytec.datamobile.vd.gui.Android.AppPreferenceActivity.class);
startActivity(i);
このステートメントでは、ActivityNameをアクティビティクラスの名前に置き換えます。このコードは存在します。