-1

こんにちは、初めてアプリに admob を追加しようとしています。多くの情報を読みました (stackOverFlow を含む)。しかし、私はまだ運がありません。私のアプリは強制終了します。これまでに試した方法は次のとおりです。

Androidmanifest.xml

アプリケーションタグ内にこれらの行を追加しました

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

また、直前に次の行を追加しました

<Meta-Data android:value="a14f9xxxxx(id from admob)" android:name="ADMOB_PUBLISHER_ID"/>

attr.xml

<?xml version="1.0" encoding="utf-8"?>
  <resources>
    <declare-styleable name="com.admob.android.ads.AdView">            
       <attr name="backgroundColor" format="color" />
       <attr name="primaryTextColor" format="color" />
       <attr name="secondaryTextColor" format="color" />
       <attr name="keywords" format="string" />
       <attr name="refreshInterval" format="integer" />
    </declare-styleable>
  </resources>

frontpage.xml (フロントページ アクティビティのレイアウト

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:myapp="http://schemas.android.com/apk/res/simple.stocktaketrial"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >
...
some other layout and components here
...

<com.admob.android.ads.AdView     
       android:id="@+id/ad" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content"
       myapp:backgroundColor="#000000"
       myapp:primaryTextColor="#FFFFFF"
       myapp:secondaryTextColor="#CCCCCC"
/>
</LinearLayout>

GoogleAdMobAdsSdk-6.0.0 を lib フォルダーに追加し、パスをビルドしました。

私が間違っていることは何ですか??

私は、レイアウトのxmlにadmobを追加する方法は、Javaにコードを追加するよりも優れていると読みました。ですから、もしそれが本当なら、私はそれを邪魔したいと思います。

よろしくお願いいたします。

これがlogcatの出力です。

06-27 12:24:56.630: E/AndroidRuntime(25265): FATAL EXCEPTION: main
06-27 12:24:56.630: E/AndroidRuntime(25265): java.lang.RuntimeException: Unable to start activity ComponentInfo{simple.stocktaketrial/simple.stocktaketrial.FrontPage}: android.view.InflateException: Binary XML file line #77: Error inflating class com.admob.android.ads.AdView
06-27 12:24:56.630: E/AndroidRuntime(25265):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at android.app.ActivityThread.access$2300(ActivityThread.java:125)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at android.os.Handler.dispatchMessage(Handler.java:99)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at android.os.Looper.loop(Looper.java:123)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at android.app.ActivityThread.main(ActivityThread.java:4627)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at java.lang.reflect.Method.invokeNative(Native Method)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at java.lang.reflect.Method.invoke(Method.java:521)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at dalvik.system.NativeStart.main(Native Method)
06-27 12:24:56.630: E/AndroidRuntime(25265): Caused by: android.view.InflateException: Binary XML file line #77: Error inflating class com.admob.android.ads.AdView
06-27 12:24:56.630: E/AndroidRuntime(25265):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at android.app.Activity.setContentView(Activity.java:1647)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at simple.stocktaketrial.FrontPage.onCreate(FrontPage.java:25)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
06-27 12:24:56.630: E/AndroidRuntime(25265):    ... 11 more
06-27 12:24:56.630: E/AndroidRuntime(25265): Caused by: java.lang.ClassNotFoundException: com.admob.android.ads.AdView in loader dalvik.system.PathClassLoader[/data/app/simple.stocktaketrial-2.apk]
06-27 12:24:56.630: E/AndroidRuntime(25265):    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
06-27 12:24:56.630: E/AndroidRuntime(25265):    at android.view.LayoutInflater.createView(LayoutInflater.java:466)
06-2 7 12:24:56.630: E/AndroidRuntime(25265):   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565)
06-27 12:24:56.630: E/AndroidRuntime(25265):    ... 20 more
4

1 に答える 1

0

AndroidManifest.xml にアクティビティがなく、「メタデータ」の大文字と小文字が正しくないようです...

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="...." android:versionCode=".." android:versionName="...">
   <application android:icon="...." android:label="....">
      <activity ..... >
      </activity>
      <meta-data android:value="a14f9xxxxx(id from admob)" android:name="ADMOB_PUBLISHER_ID"/>
      <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
   </application>
</manifest>

上記の configChanges 属性は、Android SDK レベル 14 以降用です。

より低い場合は、これを使用します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
       package="...." android:versionCode=".." android:versionName="...">
   <application android:icon="...." android:label="....">
      <activity ..... >
      </activity>
      <meta-data android:value="a14f9xxxxx(id from admob)" android:name="ADMOB_PUBLISHER_ID"/>
      <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation"/>
    </application>
</manifest>

そこのアクティビティは Admobs ライブラリ内にあり、何もする必要はありません :)

于 2012-06-27T01:08:29.733 に答える