簡體   English   中英

與admob和startActivity崩潰

[英]crash with admob and startActivity

我在我的程序中使用intent來共享圖像和文本。

在添加AdMob橫幅之前,一切正常。 程序進入startActivity時程序崩潰。 它不是每次都會發生,但比例約為30%。

這是啟動外部意圖的代碼。

private void _share(String text) {
    Log.w("A", "share");
    Intent intent=new Intent(android.content.Intent.ACTION_SEND);
    intent.setType("image/*");
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);

    File file = new File("/sdcard/dodgegame.jpg");
    intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
    intent.putExtra(Intent.EXTRA_TEXT, text);
    startActivity(Intent.createChooser(intent, "How do you want to share?"));
}

AdMob本身運作良好。 廣告正確顯示。 似乎所有的崩潰都發生在startActivity和新廣告同時出現在AdMob上時(不確定),因為每次崩潰時,我都可以看到adob日志,例如Ads onReceiveAd()

這是崩潰時的日志:

09-15 00:23:23.540: I/Choreographer(18986): Skipped 30 frames!  The application may be doing too much work on its main thread.
09-15 00:23:33.451: I/Ads(19125): onReceiveAd()
09-15 00:23:34.232: W/A(19125): share
09-15 00:23:34.272: W/crash_handler(19125): Caught a crash, signum=11
09-15 00:23:34.272: E/webcore(19125): Report WebCore crash to the ErrorReportUtils at:Sun Sep 15 00:23:34 格林尼治標准時間+0800 2013

有沒有人經歷過?

在添加AdMob之前,這個意圖很有用,所以我認為這可能是AdMob的一個錯誤。 如果是這樣,我將不得不找到暫時禁用AdMob的方法。

其他信息:

  1. AdMob JAR:GoogleAdMobAdsSdk-6.4.1.jar
  2. Android sdk:mac-x86_64-20130729 / android-18
  3. 函數_share通過JNI從cocos2dx調用(這有關系嗎?)

最后我解決了!

意識到這是一個線程問題, startActivity被稱為cocos2dx線程,我搬到startActivity進入由主UI線程Handler 崩潰再也沒發生過。

所以我在onCreate創建了一個Handler

private Handler handler;
protected void onCreate(Bundle savedInstanceState){
    // ... blah blah
    handler = new Handler();
}

然后在Runnable調用startActivity

private void share() {
    handler.post(new Runnable(){
    @Override
    public void run() {
        // ... create intent
        startActivity(intent);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM