AdMob:com.google.ads.AdView类错误

时间:2013-01-31 18:06:24

标签: android exception layout admob advertisement

我有一个简单的线性布局,上面有广告。当我启动应用程序时,我遇到了这个错误:

01-31 19:00:02.337: E/AndroidRuntime(11395): FATAL EXCEPTION: main
01-31 19:00:02.337: E/AndroidRuntime(11395): android.view.InflateException: Binary XML file line #34: Error inflating class com.google.ads.AdView
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.LayoutInflater.createView(LayoutInflater.java:613)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at com.devspark.sidenavigation.SideNavigationView$SideNavigationAdapter.getView(SideNavigationView.java:248)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.widget.AbsListView.obtainView(AbsListView.java:2159)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.widget.ListView.makeAndAddView(ListView.java:1831)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.widget.ListView.fillDown(ListView.java:674)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.widget.ListView.fillGap(ListView.java:638)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.widget.AbsListView.trackMotionScroll(AbsListView.java:4930)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.widget.AbsListView.scrollIfNeeded(AbsListView.java:3087)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.widget.AbsListView.startScrollIfNeeded(AbsListView.java:3032)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.widget.AbsListView.onTouchEvent(AbsListView.java:3357)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.View.dispatchTouchEvent(View.java:7239)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2168)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1903)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2174)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2174)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2174)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2174)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2174)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2174)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2174)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1953)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1405)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.app.Activity.dispatchTouchEvent(Activity.java:2410)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1901)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.View.dispatchPointerEvent(View.java:7419)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3220)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3165)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4292)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4271)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4363)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:179)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:171)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:4342)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:4382)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.Choreographer.doCallbacks(Choreographer.java:562)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.Choreographer.doFrame(Choreographer.java:530)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.os.Handler.handleCallback(Handler.java:725)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.os.Handler.dispatchMessage(Handler.java:92)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at android.os.Looper.loop(Looper.java:137)
01-31 19:00:02.337: E/AndroidRuntime(11395):    at andr

两次都会引用最新的AdMob库。 jar位于libs文件夹中,我将其添加到Java Build Path。

这是布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res/com.natinusala.pebkac" 
    xmlns:ads="schemas.android.com/apk/lib/com.google.ads"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:paddingBottom="@dimen/side_navigation_item_padding_topbottom"
    android:paddingLeft="0dp"
    android:paddingRight="@dimen/side_navigation_item_padding_leftright"
    android:paddingTop="@dimen/side_navigation_item_padding_topbottom"
     >

    <com.google.ads.AdView
        android:id="@+id/advert"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:visibility="gone"
        app:backgroundColor="#000000"
        app:keywords="Android game"
        app:textColor="#FFFFFF"
        ads:addSize="BANNER" />

</LinearLayout>

你能帮帮我吗?

谢谢!

4 个答案:

答案 0 :(得分:0)

我认为

而不是android:visibility =“gone”

使用android:visibility =“invisible”

答案 1 :(得分:0)

转到eclipse项目的属性,Java Build Path,Order and Export,检查GoogleAdMobAdsSdk-6.2.1.jar条目并将其移到列表顶部。

这对我有同样的问题。

答案 2 :(得分:0)

我认为你应该将admob jar文件添加到项目库(lib文件夹)中。只需将其复制并粘贴到项目的lib文件夹中即可。这有时会奏效。

如果以上解决方案不起作用,则右键单击项目,选择选项Build Path - &gt; Configure Build Path然后选择add jar选项,选择项目,选择项目的lib文件夹,选择你想要的.jar文件然后单击“确定”并重新启动Eclipse一次。 (此过程适用于Eclipse IDE)。

答案 3 :(得分:0)

我注意到你的代码:

xmlns:ads="schemas.android.com/apk/lib/com.google.ads"

在Google Developer Page中,示例代码为:

xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

并记住选择Order and Export(属性&gt; Java Build Path)选项卡;然后,检查Google移动广告JAR,以便在编译项目时将其包含在内。

看到它有帮助吗