1

すでに市場に出回っていて、通常は正常に動作しているマルチ アクティビティ アプリがあります。つい最近、(mopub) 広告を別の方法で処理するようにコードを変更しました。プログラムを実行して複数のレベルをプレイすると、これはうまくいくようです。広告は、必要なときに必要な場所に正確に表示されます。問題は、プログラムを終了してから再起動した後に発生します。私のプログラムの最初のアクティビティは「スプラッシュ スクリーン」です。2回目の実行で、次のエラーが発生します。

04-23 11:16:50.374: W/dalvikvm(10512): threadid=1: thread exiting with uncaught exception (group=0x40015560)
04-23 11:16:50.394: E/AndroidRuntime(10512): FATAL EXCEPTION: main
04-23 11:16:50.394: E/AndroidRuntime(10512): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mycompany.mygame/com.mycompany.mygame.Splash}: android.view.InflateException: Binary XML file line #24: Error inflating class <unknown>
04-23 11:16:50.394: E/AndroidRuntime(10512):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
04-23 11:16:50.394: E/AndroidRuntime(10512):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
04-23 11:16:50.394: E/AndroidRuntime(10512):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-23 11:16:50.394: E/AndroidRuntime(10512):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
04-23 11:16:50.394: E/AndroidRuntime(10512):    at android.os.Handler.dispatchMessage(Handler.java:99)
04-23 11:16:50.394: E/AndroidRuntime(10512):    at android.os.Looper.loop(Looper.java:123)
04-23 11:16:50.394: E/AndroidRuntime(10512):    at android.app.ActivityThread.main(ActivityThread.java:3683)

何がこれを引き起こす可能性があるのか​​ 、そしてなぜ最初の実行で文句を言わなかったのですか?

編集:

xml は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center|center_horizontal|center_vertical"
    android:background="@drawable/background"
    android:orientation="vertical" >


    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=" Blah blah blah"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <ImageView                            <<== THIS IS LINE 24
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/mygame_logo" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="   My company name"
            android:textAppearance="?android:attr/textAppearanceMedium" />

    </LinearLayout>

</LinearLayout>

編集:コメントに応じて...

次のように定義されたアプリケーションクラスがあります。

public class Globals extends Application
{
}

その onCreate メソッドで私は...

    allocate_and_initialise_fresh_new_mAdView();
    load_mopub_banner_ad();

...として定義されています

void allocate_and_initialise_fresh_new_mAdView()
{
    mAdView = new MoPubView(this);
    mAdView.setAdUnitId("agltb3B1Yi1pbmNyDAsSBFNpdGUYkaoMDA");// PUB_ID_320x50
}

void load_mopub_banner_ad()
{
    if (mAdView != null)
    {
        mAdView.loadAd();
    }
    debug("Completed loadAd");
}
4

1 に答える 1

1

Application クラスでビューを初期化しています!

これはお勧めできません。ビューのコンテキストは、その有効期間を含むアクティビティでなければなりません。それがOSがあなたに期待していることです。

Application クラスから削除するだけで、これらのエラーは再表示されなくなります。

于 2012-04-23T11:47:55.093 に答える