私はこの特定の例外についての報告を受けています、そしてそれは私を困惑させました、それを探し回る運がありませんでした。このアプリは、それに似たものを使用せずに、いくつかの異なるデバイスでテストされています。
奇妙なことに、ユーザーが初めてアプリを実行すると、AlertDialog.Builder
が作成されて表示されるためAlertDialog.Building
、デバイスでの実際のメソッドである可能性が高くなります。ドキュメントには、APIレベル1以降も存在していると書かれています。
例外は他の問題を参照している可能性がありますか?
例外は、2.3.6を実行しているGT-N7000GalaxyNoteで発生しました。
スタックトレースは難読化されていません。
java.lang.NoSuchMethodError: android.app.AlertDialog$Builder.
at com.slowchop.wifiheat.lib.heat.Filter.void showSubjectDialog(java.lang.String,java.lang.String)(SourceFile:143)
at com.slowchop.wifiheat.lib.heat.Filter.void showChangeAccessPoint()(SourceFile:128)
at com.slowchop.wifiheat.lib.heat.HeatActivity.boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem)(SourceFile:475)
at android.support.v4.app._ActionBarSherlockTrojanHorse.boolean onMenuItemSelected(int,com.actionbarsherlock.view.MenuItem)(SourceFile:119)
関係する方法:
private void showSubjectDialog(String title, final String filter) {
new AlertDialog.Builder(context, AlertDialog.THEME_HOLO_DARK)
.setTitle(title)
.setAdapter(subjectAdapter, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int i) {
ListItem item = (ListItem)subjectAdapter.getItem(i);
updateFilterFromAlertDialog(dialog, filter, item.id);
}
}).show();
}
行143は次のとおりです。
new AlertDialog.Builder(context, AlertDialog.THEME_HOLO_DARK)
別のパスからの別のスタックトレースもありましたがshowChangeAccessPoint()
、同じ方法で呼び出しを続行します。この場合、エラーについてAlertDialog.Builder
は別のAlertDialog.Builder
!:から呼び出されます。
java.lang.NoSuchMethodError: android.app.AlertDialog$Builder.
at com.slowchop.wifiheat.lib.heat.Filter.void showSubjectDialog(java.lang.String,java.lang.String)(SourceFile:143)
at com.slowchop.wifiheat.lib.heat.Filter.void showChangeAccessPoint()(SourceFile:128)
at com.slowchop.wifiheat.lib.heat.Filter$2.void onClick(android.content.DialogInterface,int)(SourceFile:85)
at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:935)