0

テストアプリ内にAdMobコードを統合したいのですが、これが私が行った手順です。

レイアウトファイルは次のようになります

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="bottom"
        android:id="@+id/layout_ad">

</LinearLayout>

マニフェストファイルは次のようになります

<?xml version="1.0" encoding="utf-8"?>

<uses-sdk android:minSdkVersion="8" />
    <uses-permission android:name="android.permission.INTERNET" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".Dummyads2Activity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

そして最後に、ここでコードがどのように見えるか

public class Dummyads2Activity extends Activity {//implements AdWhirlInterface{
/** Called when the activity is first created. */

private AdWhirlLayout adWhirlLayout;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


   try{
        AdManager.setTestDevices( new String[] { AdManager.TEST_EMULATOR } );
        LinearLayout layout = (LinearLayout)findViewById(R.id.layout_ad);
        AdWhirlLayout adWhirlLayout = new AdWhirlLayout(this, "my adwhirl id");
        Display d = this.getWindowManager().getDefaultDisplay();
        RelativeLayout.LayoutParams adWhirlLayoutParams = new RelativeLayout.LayoutParams(d.getWidth(), 72);
        layout.addView(adWhirlLayout, adWhirlLayoutParams);
    }catch(Exception e){
        //Log.e(TAG, "Unable to create AdWhirlLayout", e);
    }

}

これが好きな場合、アプリがクラッシュし、広告が表示されません。問題を解決するのを手伝ってください。

4

1 に答える 1

0

これは、使用している AdMob と AdWhirl のバージョンによって大きく異なります。現在最新バージョンである AdMob SDK v6.1.0 と AdWhirl v3.2.0 についてお話します。

次の行が原因でクラッシュする可能性があります。

AdManager.setTestDevices( new String[] { AdManager.TEST_EMULATOR } );

これは従来の AdMob AdManager に似ています。AdWhirl は Google AdMob SDK を使用します。とにかく、AdWhirl でテスト広告が必要な場合は、広告ネットワーク経由ではなく、AdWhirl 経由でテストを設定する必要があります。したがって、上記の行を削除し、次のようにテスト モードを設定します。

AdWhirlTargeting.setTestMode(true);

また、マニフェストには、仲介しているネットワークのすべてのアクセス許可とアクティビティ定義のスーパーセットが必要です。AdMob の場合、以下を追加する必要があります。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
...
<activity android:name="com.google.ads.AdActivity"
              android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|uiMode|screenSize|smallestScreenSize" />

それでもエラーが発生する場合は、ログ出力を投稿すると便利です。Eclipse を使用している場合は、Window -> Show View -> Other... -> Android -> LogCat から logcat を見つけることができます。adb logcatまたは、Android の adb ツールを使用して、コマンド ラインから logcat 出力を取得できます。

于 2012-07-24T21:30:11.483 に答える