Android AdView: фатальный сигнал 4 (SIGILL), код 2, адрес ошибки 0xb6fc346e в tid 2826 (AdWorker #3)
Эта ошибка libc : Fatal signal 4 (SIGILL), code 2, fault addr 0xb6fc346e in tid 2826 (AdWorker #3)
произошло всплывающее окно, и я понятия не имел, как это исправить, так как не было следа стека. Я использую эмулятор Genymotion, и он отображается только на Lollipop.
Это как-то связано с моим Adview, потому что, когда я комментирую loadAd()
ошибка исчезнет
avHomeAd = (AdView) this.findViewById(R.id.avHomeAd);
AdRequest adRequest = new AdRequest.Builder().build();
//avHomeAd.loadAd(adRequest); <--commenting this out fixes it, but then I get no ads :(
Как исправить?
1 ответ
Ответ лежит в пределах разрешений! Я закомментировал ACCESS_NETWORK_STATE
разрешение, и оно больше не появляется. Документы Google AdMob говорят, что это в любом случае необязательно.
<uses-permission android:name="android.permission.INTERNET" />
<!--This crashes app on Genymotion lollipop emulator when combined with AdView.
It is optional for adView says google docs, ignore the error msg thrown in logcat
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>-->
Недостатком является то, что иногда реклама не отображается в эмуляторе, но она отображается на моем реальном устройстве (kitkat). Я до сих пор не знаю, приведет ли сбой к действию устройства Lollipop, так как у меня его нет под рукой! Может быть, кто-то может вмешаться.
Ваше приложение может теперь выдать эту ошибку (не вызывает сбой приложения) ниже и было единственной причиной, по которой я добавил разрешение в первую очередь! Но так как это необязательно и вылетает эмулятор леденца на палочке, я просто проигнорирую его.
E/GAV4﹕ Thread[GAThread,5,main]: Error on GAThread: java.lang.SecurityException: ConnectivityService: Neither user 10059 nor current process has android.permission.ACCESS_NETWORK_STATE.