2013-04-08 63 views
0

我需要添加或忽略Admob廣告的AdActivity。我正在使用TabActivity,並且標籤內導航的活動保留在ArrayList中。在我導航到選項卡中的第三項活動後再集成廣告後,然後再按一下,而不是回到之前的活動(在集成廣告之前發生的),我即將退出應用程序。在將活動添加到ArrayList時,我將意圖標誌設置爲FLAG_ACTIVITY_CLEAR_TOP。你能告訴我怎樣才能克服出來的應用程序在第三activity背部按下,而不是能夠來到第二activity,然後到第一activity如何在Android中添加或忽略Admob廣告的AdActivity?

謝謝。

編輯:

04-10 13:19:32.519: E/AndroidRuntime(1392): FATAL EXCEPTION: main 
04-10 13:19:32.519: E/AndroidRuntime(1392): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.admob/com.example.admob.activity.MainTabActivity}: java.lang.NullPointerException 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at android.app.ActivityThread.access$600(ActivityThread.java:123) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at android.os.Handler.dispatchMessage(Handler.java:99) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at android.os.Looper.loop(Looper.java:137) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at android.app.ActivityThread.main(ActivityThread.java:4424) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at java.lang.reflect.Method.invoke(Method.java:511) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at dalvik.system.NativeStart.main(Native Method) 
04-10 13:19:32.519: E/AndroidRuntime(1392): Caused by: java.lang.NullPointerException 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:101) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at com.google.ads.AdView.<init>(SourceFile:87) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at com.google.ads.doubleclick.DfpAdView.<init>(SourceFile:27) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at com.example.admob.activity.MainTabActivity.onCreate(MainTabActivity.java:80) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at android.app.Activity.performCreate(Activity.java:4465) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
04-10 13:19:32.519: E/AndroidRuntime(1392):  ... 11 more 
+1

AdMob廣告無關,用它做......看你實際上是調用的活動方式..areü調用完成()也在時間打開新的活動...... FLAG_ACTIVITY_CLEAR_TOP實際上是破壞是在一個頂部的活動妳目前...所以要避免,如果你想搬回背部activites presed – DeltaCap 2013-04-08 11:08:19

+0

我調試的問題,並發現了Admob導致內存泄漏。我檢查了這個鏈接http://stackoverflow.com/questions/13946976/why-does-my-android-activity-close-when-admob-loads-an-ad/15912664#15912664並實施相同的,但後來我空指針異常。我編輯了我的問題併發布了Logcat中顯示的日誌。 – 2013-04-10 08:15:44

回答

0

我終於找到了解決辦法吧!問題出在佈局上。我相應地改變了它,它工作。以下是我的XML代碼:

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
android:id="@android:id/tabhost" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 

<FrameLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="50dip" /> 

     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" /> 
    </LinearLayout> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" > 

     <com.google.ads.doubleclick.DfpAdView 
      android:id="@+id/adView" 
      android:layout_width="wrap_content" 
      android:layout_height="50dip" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" 
      ads:adSize="BANNER" 
      ads:adUnitId="AD_UNIT_ID" 
      ads:loadAdOnCreate="true" 
      android:focusable="false" /> 
    </RelativeLayout> 
</FrameLayout>