1

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

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 构建路径中。

这是布局代码:

<?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

4 回答 4

1

我认为

而不是 android:visibility="gone"

使用 android:visibility="invisible"

于 2013-01-31T18:14:23.367 回答
0

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

这对我有同样的问题有用。

于 2013-02-06T12:35:01.223 回答
0

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

如果上述解决方案不起作用,则右键单击项目,选择选项 Build Path-->Configure Build Path 然后选择添加 jar 选项,选择您的项目,选择项目的 lib 文件夹,选择您想要的 .jar 文件,然后单击 OK 和重新启动 Eclipse 一次。(此过程适用于 Eclipse IDE)。

于 2013-12-18T07:33:58.747 回答
0

我注意到你的代码:

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

在谷歌开发者页面中,示例代码是:

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

并记住选择 Order and Export(Properties>Java Build Path) 选项卡;然后,检查 Google Mobile Ads JAR 以在编译项目时将其包含在内。

看看有没有帮助

于 2013-12-31T15:39:21.083 回答