2

Android用のmoPubライブラリをダウンロードしてインポートできました。moPub サイトの簡単な例に従った後、アプリケーションはエミュレーターで正常に動作します。ただし、コントロールを追加した後、Eclipse ビューアーは画面を正しく表示できません。

xml インクルード [例に基づく]

    <com.mopub.mobileads.MoPubView
        android:id="@+id/adview"
        android:layout_width="fill_parent"
        android:layout_height="50px" />

「グラフィカルレイアウト」タブに移動しようとすると、以下のエラーが発生します

The following classes could not be instantiated:
- com.mopub.mobileads.MoPubView (Open Class, Show Error Log)
See the Error Log (Window > Show View) for more details.
Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse

これはショーストッパーというよりも刺激的ですが、私はむしろ取り組んでみたいものです. 事前にどうもありがとうございました。

4

1 に答える 1

1

簡単に修正するには、MoPub SDK プロジェクトで MoPubView を自分で編集します (ソースがプロジェクトの残りの部分と一緒にコンパイルされるような方法で追加したと仮定します)。コンテキストと属性セット パラメータ:

    if (isInEditMode()) return;

上記の行の配置を示す大きなスニペットを次に示します。

public MoPubView(Context context, AttributeSet attrs) {
    super(context, attrs);

    if (isInEditMode()) return;

    mContext = context;
    //[...the rest of the constructor's code...]
}

この行 (お好みのスタイル) を追加すると、例外がスローされず、デバイスで実行されず、テストで 320x50 のバナー広告をプルダウンできました (これまで、シミュレーターに広告を配信したことはありません)。

この変更を github に行い、プル リクエストを行いました。リリース: バージョン 1.14.1.0 https://github.com/mopub/mopub-android-sdk

isInEditMode() の使用全体に対する Android SDK の見解: http://developer.android.com/reference/android/view/View.html#isInEditMode()

于 2013-07-04T22:49:36.787 に答える