1
我的應用使用導航抽屜。我的應用程序將與以下錯誤崩潰:127startActivity()在加載adView後返回NPE mob
08-30 16:44:30.079 22176-22176/com.imincode.meniti W/System.err﹕ java.lang.NullPointerException
08-30 16:44:30.089 22176-22176/com.imincode.meniti W/System.err﹕ at com.imincode.meniti.MenuGoals$2$1.onClick(MenuGoals.java:127)
08-30 16:44:30.089 22176-22176/com.imincode.meniti W/System.err﹕ at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
08-30 16:44:30.089 22176-22176/com.imincode.meniti W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:99)
08-30 16:44:30.089 22176-22176/com.imincode.meniti W/System.err﹕ at android.os.Looper.loop(Looper.java:137)
線顯示下方
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
super.onCreateOptionsMenu(menu, inflater);
MenuItem tbAddItem = menu.findItem(R.id.tbAddItem);
tbAddItem.setVisible(true);
tbAddItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
new AlertDialog.Builder(getActivity())
.setTitle(getContext().getString(R.string.download_paid_title))
.setMessage(getContext().getString(R.string.download_paid_content))
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Uri uri = Uri.parse("market://details?id=com.imincode.menitiplus");
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
goToMarket.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
try {
startActivity(goToMarket); //line 127
} catch (ActivityNotFoundException e) {
getActivity().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + getActivity().getPackageName())));
} }
})
.setNegativeButton(android.R.string.no, null).show();
return false;
}
});
採取注意,當以下條件滿足錯誤將只拋出:
- 首先,用admob加載片段
- 從導航抽屜中加載另一個片段。這個片段沒有任何admob。
- 該片段有一個按鈕來加載Play商店,如上所示。
- 點擊該按鈕會拋出上面提到的錯誤。
- 如果我不使用AlertDialog(意味着只需在視圖上創建一個按鈕並點擊它),我就可以打開Play Store,而不會出現任何問題。所以我認爲AlertDialog是罪魁禍首之一。
注意到,Play商店中可以沒有任何問題或錯誤推出,如果我沒有在打開其中有一個按鈕加載Play商店中的片段(和eventualy點擊之前加載使用AdMob的片段按鈕加載Play商店)。
順便說一句,這裏是代碼來加載其他片段上的adMob。
AdView mAdView = (AdView) rootView.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
mAdView.destroy();