2014-01-27 41 views
1

我注意到,在使用Mopub SDK顯示廣告版式時,我的Android應用有時會崩潰。 我從來沒有能夠重現這個問題,它從來沒有發生在我的設備上。使Mopub廣告橫幅可見時發生崩潰

這裏是包含廣告橫幅的佈局:

<LinearLayout 
    android:id="@+id/layout_ads" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:visibility="gone" 
> 

    <View 
     android:layout_width="fill_parent" 
     android:layout_height="1dp" 
     android:background="@color/list_divider" 
    /> 

    <com.mopub.mobileads.MoPubView 
     android:id="@+id/adview" 
     android:layout_width="fill_parent" 
     android:layout_height="@dimen/ad_height" 
    />   
</LinearLayout> 

這裏就是崩潰發生:

View adsLayout = null; 
@Override 
protected void onResume() { 
    super.onResume(); 
    ... 
    adsLayout = findViewById(R.id.layout_ads); 
    ... 
    if (adsLayout != null) 
    adsLayout.setVisibility(View.GONE); 
    ... 
} 

@Override 
public void onBannerLoaded(MoPubView arg0) { 
    if (adsLayout != null) 
     adsLayout.setVisibility(View.VISIBLE); 
} 

,這裏是錯誤困擾着我:

java.lang.NullPointerException 
     at android.webkit.WebViewClassic.requestFocus(WebViewClassic.java:6997) 
     at android.webkit.WebView.requestFocus(WebView.java:2044) 
     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2477) 
     at android.view.ViewGroup.requestFocus(ViewGroup.java:2433) 
     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2477) 
     at android.view.ViewGroup.requestFocus(ViewGroup.java:2433) 
     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2477) 
     at android.view.ViewGroup.requestFocus(ViewGroup.java:2433) 
     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2477) 
     at android.view.ViewGroup.requestFocus(ViewGroup.java:2433) 
     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2477) 
     at android.view.ViewGroup.requestFocus(ViewGroup.java:2433) 
     at android.view.View.requestFocus(View.java:6487) 
     at android.view.View.requestFocus(View.java:6466) 
     at android.view.ViewRootImpl.focusableViewAvailable(ViewRootImpl.java:2609) 
     at android.view.ViewGroup.focusableViewAvailable(ViewGroup.java:708) 
     at android.view.ViewGroup.focusableViewAvailable(ViewGroup.java:708) 
     at android.view.ViewGroup.focusableViewAvailable(ViewGroup.java:708) 
     at android.view.ViewGroup.focusableViewAvailable(ViewGroup.java:708) 
     at android.view.View.setFlags(View.java:8377) 
     at android.view.View.setVisibility(View.java:5575) 
     at myapp.MyActivity.onBannerLoaded(MyActivity.java:129) 
     at com.mopub.mobileads.MoPubView.adLoaded(MoPubView.java:247) 
     at com.mopub.mobileads.MoPubView.nativeAdLoaded(MoPubView.java:287) 
     at com.mopub.mobileads.CustomEventBannerAdapter.onBannerLoaded(CustomEventBannerAdapter.java:100) 
     at com.mopub.mobileads.GoogleAdMobBanner.onReceiveAd(GoogleAdMobBanner.java:170) 
     at com.google.ads.internal.d.E(SourceFile:1180) 
     at com.google.ads.internal.c$e.run(SourceFile:214) 
     at android.os.Handler.handleCallback(Handler.java:615) 
     at android.os.Handler.dispatchMessage(Handler.java:92) 
     at android.os.Looper.loop(Looper.java:213) 
     at android.app.ActivityThread.main(ActivityThread.java:4788) 
     at java.lang.reflect.Method.invokeNative(Method.java) 
     at java.lang.reflect.Method.invoke(Method.java:511) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) 
     at dalvik.system.NativeStart.main(NativeStart.java) 

任何關於這個問題的想法?

+0

HI @紀堯姆 - TGL叫,我知道這是舊的,但你有沒有解決?我有一個應用程序,並已收到由MoPub AdView(banner)上的nullPounterException導致的一對崩潰報告。這很奇怪,因爲我在onCreate中創建了一次AdView,並且只在onDestroy中銷燬它,但是在它之間,有時試圖改變它的可見性導致nullPointerException。和你一樣,我最終還是無法重新創建這個問題。謝謝 – Zippy

+0

說實話,我們現在已經轉移到Admob了,我們沒有任何問題:) –

回答

0

移動 adsLayout = findViewById(R.id.layout_ads); 移動到onCreate(..)

你得到一個空指針,因爲onResume(..)不前onBannerLoaded().

+0

好吧,但是如果'onResume'沒有在'onBannerLoaded'之前調用,'adsLayout'應該是'null',然後'setVisibility'沒有被調用,對吧? –

+0

AdsLayout爲null,這就是爲什麼他們從不會打電話。 – Aashir

+0

不確定要理解你的答案。當'adsLayout'爲null時,問題不會發生,因爲我在調用'setVisibility'之前檢查它是否爲null。 –