intent
プログラムで画像とテキストを共有するために使用しています。
AdMob バナーが追加されるまで、すべてが正常に機能していました。に行くとプログラムがクラッシュしstartActivity
ます。毎回ではありませんが、3割程度の割合です。
外部インテントを起動するためのコードを次に示します。
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 に同時に来ると、すべてのクラッシュが発生するようです (よくわかりません)。クラッシュするたびに、次のような admob ログが表示されるためです。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 を一時的に無効にする方法を見つける必要があります。
追加情報:
- AdMob JAR: GoogleAdMobAdsSdk-6.4.1.jar
- Android SDK: mac-x86_64-20130729 / android-18
- この関数
_share
は、JNI 経由で cocos2dx から呼び出されます (それは重要ですか?)