私は自分のデバイスでこれを目撃したことはなく、イライラさせられますが、マーケットのユーザーからこのスタック トレースが送られてきます。
java.lang.RuntimeException: Unable to destroy activity
sbsoftware.jewelgobbler/com.google.ads.AdActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:2676)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:2694)
at android.app.ActivityThread.access$2100(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:968)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3691)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:670)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.webkit.WebView.loadUrl(WebView.java:2341)
at android.webkit.WebView.loadUrl(WebView.java:2357)
at a.a(Unknown Source)
at a.a(Unknown Source)
at a.b(Unknown Source)
このアプリケーションは、AndEngine GLES1 によって駆動されるゲームです。XML アプローチを利用して adview を構成します。たとえば、私のメイン レイアウトでは、
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<org.anddev.andengine.opengl.view.RenderSurfaceView
android:id="@+id/xmllayoutRenderSurfaceView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true"
android:gravity="center" />
<com.google.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/xmllayoutRenderSurfaceView"
android:layout_centerInParent="true"
ads:adSize="BANNER"
ads:adUnitId="<MyCode>"
ads:loadAdOnCreate="true" />
</RelativeLayout>
これはマニフェスト Admob アクティビティです。
<activity
android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|
smallestScreenSize"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
</application>
LayoutGameActivity を拡張した Main Activity、JewelGobblerActivity への実装、
public static AdView adView;
public static InterstitialAd interstitial;
@Override
public void onLoadResources() {
adView = (AdView) findViewById(R.id.adView);
interstitial = new InterstitialAd(this, "<MyCode>");
AdRequest adRequest = new AdRequest();
interstitial.loadAd(adRequest);
//other stuff
SceneManager.init(this, mCamera);
LoadCurrentDetails();
}
...
@Override
protected int getLayoutID() {
// TODO Auto-generated method stub
return R.layout.main;
}
@Override
protected int getRenderSurfaceViewID() {
// TODO Auto-generated method stub
return R.id.xmllayoutRenderSurfaceView;
}
以上が Admob に関するすべてですが、SceneManager の 2 つの広告表示ルーチンを除いては、
public static void ShowInterstitialAd()
{
JewelGobblerActivity.handler.post(new Runnable() {
@Override
public void run() {
if (JewelGobblerActivity.interstitial != null)
{
if (JewelGobblerActivity.interstitial.isReady())
{
JewelGobblerActivity.interstitial.show();
JewelGobblerActivity.interstitial.loadAd(new AdRequest()); //request a new ad
}
}
}
});
}
public static void SetAdVisibility(final boolean Visible)
{
JewelGobblerActivity.handler.post(new Runnable() {
@Override
public void run() {
if (JewelGobblerActivity.adView != null)
{
if (Visible) JewelGobblerActivity.adView.setVisibility(View.VISIBLE);
else JewelGobblerActivity.adView.setVisibility(View.INVISIBLE);
}
}
});
}
Admob 6.2.1 を使用しています。SG 1 と 3、Huawei と Archos を含む、私が手にしなければならないすべてのデバイスで正常に動作します... バナーとインタースティシャル広告表示から、すべて正常に動作します。他の誰かがこの問題を抱えていて、それを解決できましたか? どんな助けでも大歓迎です!
乾杯
スティーブン