Я использую intent
в моей программе для обмена изображениями и текстом.авария с admob и startActivity
Все было хорошо, пока баннер 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 в то же время (не уверен), потому что каждый раз, когда он выходит из строя, я могу видеть 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/андроид-18
- Функция
_share
вызывается из cocos2dx с помощью JNI (это имеет значение?)
где вы добавили объявления в коде? – GrIsHu
Будет лучше, если вы сохраните свой код объявления в отдельном потоке из основного потока пользовательского интерфейса. – GrIsHu