我在Google Play商店有一个应用程序,它适用于大多数人。但是,通过Google崩溃报告报告了90起崩溃事件,其中包括以下内容:
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
at android.app.ContextImpl.startActivity(ContextImpl.java:847)
at android.content.ContextWrapper.startActivity(ContextWrapper.java:276)
at android.webkit.CallbackProxy.uiOverrideUrlLoading(CallbackProxy.java:242)
at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:330)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4429)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:3151)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:2918)
at dalvik.system.NativeStart.main(Native Method)
我在网上浏览了一下,但我能找到的只是添加intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
。
但这对我不起作用,因为我在代码中没有调用startActivity()
。我打电话给startActivityForResult()
,但指定FLAG_ACTIVITY_NEW_TASK
标志会停止onActivityResult()
中返回的结果。
以下是在我的主要活动中从startActivityForResult()
调用onCreate()
的唯一代码:
private void load()
{
Intent loadBeats = new Intent(this, BeatListActivity.class);
startActivityForResult(loadBeats, SELECT_BEAT_ACTIVITY);
}
我从来没有在我的任何设备或虚拟设备中发生此错误!这一切都很难解决。
有什么想法吗?
答案 0 :(得分:0)
在有用的评论之后,@ ReubenScratton,按照我的问题,我认为我已经找到了问题/解决方案!
在我的代码中,我不使用startActivity()
,所以这让我很困惑。但是,我确实使用AdView(admob广告)版本4.1.1,它似乎打电话给startActivity()
。
我在搜索谷歌后发现了这一点。根据我的问题,其他人使用该版本的AdView(GoogleAdMobAdsSdk-4-1-1.jar)报告了相同的错误。
我已使用较新版本更新了我的应用,到目前为止,已经没有更多错误了!
如果不是这种情况,我会报告。
答案 1 :(得分:0)
刚加起来
插页式广告
也会出现此例外情况您必须传递活动上下文而不是应用程序上下文
InterstitialAd interstitial = new InterstitialAd(this);
片段
InterstitialAd interstitial = new InterstitialAd(getActivity());
而不是
InterstitialAd interstitial = new InterstitialAd(getActivity().getApplicationContext());