AD浏览报未能实例 [英] AdView failed to instantiate

查看:141
本文介绍了AD浏览报未能实例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想包括在我的应用程序的AdMob的旗帜,我得到这个奇怪的错误。任何帮助表示深深的AP preciated。

下面是XML code

 < com.google.ads.AdView机器人:ID =@ + ID / AD浏览报
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:重力=底
    广告:adUnitId =...
    广告:adSize =大旗
/>
 

在活动中,我写了下面code

  = AD浏览(AD浏览报)findViewById(R.id.adView);
adview.setVisibility(View.VISIBLE);
AdRequest重=新AdRequest();
adview.loadAd(重);
 

在我的logcat出现以下错误

 没有足够的空间来显示广告!想:其中; 480,75>中有:℃下,800 GT;
 

我怀疑,一定有另外一个问题,因为我给了AD浏览报的宽度为WRAP_CONTENT

在XML文件中的图形视图有此警告

,当我点击这个错误我看到有一个java.lang.UnsupportedOperationException

如果您想进一步调查这里是全异常堆栈跟踪

  java.lang.UnsupportedOperationException
在com.android.layoutlib.bridge.android.BridgeContext.getApplicationContext(BridgeContext.java:1272)
在com.google.ads.AdView.a(的SourceFile:155)
在com.google.ads.AdView.a(的SourceFile:329)
在com.google.ads.AdView< INIT>(的SourceFile:115)
在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
在java.lang.reflect.Constructor.newInstance(Constructor.java:513)
在com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.instantiateClass(ProjectCallback.java:397)
在com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.loadView(ProjectCallback.java:165)
在com.android.layoutlib.bridge.android.BridgeInflater.loadCustomView(BridgeInflater.java:205)
在com.android.layoutlib.bridge.android.BridgeInflater.createViewFromTag(BridgeInflater.java:133)
在android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:83)
在android.view.LayoutInflater.rInflate(LayoutInflater.java:702)
在android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:86)
在android.view.LayoutInflater.rInflate(LayoutInflater.java:702)
在android.view.LayoutInflater.inflate(LayoutInflater.java:454)
在android.view.LayoutInflater.inflate(LayoutInflater.java:367)
在com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:324)
在com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:321)
在com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:325)
在com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderService.createRenderSession(RenderService.java:372)
在com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1323)
在com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1077)
在com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated(GraphicalEditorPart.java:903)
在com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor.pageChange(LayoutEditor.java:399)
在org.eclipse.ui.part.MultiPageEditorPart $ 2.widgetSelected(MultiPageEditorPart.java:290)
在org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
在org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
在org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783)
在org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
在org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398)
在org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383)
在org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1195)
在org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2743)
在org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1429)
在org.eclipse.swt.custom.CTabFolder $ 1.handleEvent(CTabFolder.java:257)
在org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
在org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783)
在org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
在org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398)
在org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383)
在org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1195)
在org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3629)
在org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3284)
在org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
在org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
在org.eclipse.ui.internal.Workbench.access $ 4(Workbench.java:2438)
在org.eclipse.ui.internal.Workbench $ 7.run(Workbench.java:671)
在org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
在org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
在org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
在org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
在org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
在org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
在org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
在org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
在org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
在java.lang.reflect.Method.invoke(Method.java:597)
在org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
在org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
在org.eclipse.equinox.launcher.Main.run(Main.java:1408)
 

解决方案创建的布局后,

AD浏览报请求将启动。所以,你必须提供特定的高度和宽度给予一定权重布局的布局。你提供WRAP_CONTENT到布局的hieght和宽度,因此,它最初作为需要宽度的0dp并基于所述的页面中的所有视图元素负载。只是尽量固定版面大小像这样,

 < com.google.ads.AdView机器人:ID =@ + ID / AD浏览报
    机器人:layout_width =480dp
    机器人:layout_height =75dp
    机器人:重力=底
    广告:adUnitId =...
    广告:adSize =大旗
/>
 

,你也不得不提到的AdMob在布局XML中的xmlns

 的xmlns:广告=htt​​p://schemas.android.com/apk/lib/com.google.ads
 

在资源,你必须声明的AdMob的包像这样

 < XML版本=1.0编码=UTF-8&GT?;
<资源>
    <申报,设置样式名称=com.admob.android.ads.AdView>
    < /申报,设置样式>
< /资源>
 

I want to include an admob banner in my application and I got this weird error. Any help is deeply appreciated.

Here is the xml code

<com.google.ads.AdView android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="bottom"
    ads:adUnitId="..."
    ads:adSize="BANNER"
/>

In the activity, I wrote the following code

adview = (AdView)findViewById(R.id.adView);
adview.setVisibility(View.VISIBLE);
AdRequest re = new AdRequest();
adview.loadAd(re);

In the Logcat I get the following error

Not enough space to show ad! Wants: <480, 75>, Has: <0, 800>

I suspected that there must have been an additional problem since I gave the width of the AdView as "wrap_content"

In the graphical view of the xml file there is this warning

and when I click on this error I see that there is an java.lang.UnsupportedOperationException

If you want to investigate further here is the full exception stack trace

java.lang.UnsupportedOperationException
at com.android.layoutlib.bridge.android.BridgeContext.getApplicationContext(BridgeContext.java:1272)
at com.google.ads.AdView.a(SourceFile:155)
at com.google.ads.AdView.a(SourceFile:329)
at com.google.ads.AdView.<init>(SourceFile:115)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.instantiateClass(ProjectCallback.java:397)
at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.loadView(ProjectCallback.java:165)
at com.android.layoutlib.bridge.android.BridgeInflater.loadCustomView(BridgeInflater.java:205)
at com.android.layoutlib.bridge.android.BridgeInflater.createViewFromTag(BridgeInflater.java:133)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:83)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:702)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:86)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:702)
at android.view.LayoutInflater.inflate(LayoutInflater.java:454)
at android.view.LayoutInflater.inflate(LayoutInflater.java:367)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:324)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:321)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:325)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderService.createRenderSession(RenderService.java:372)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1323)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1077)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated(GraphicalEditorPart.java:903)
at com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor.pageChange(LayoutEditor.java:399)
at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:290)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1195)
at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2743)
at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1429)
at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1195)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3629)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3284)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1408)

解决方案

Adview request starts after the layout been created. So you have to provide specific height and width to the layout of give some weight to the layout. You are provided wrap_content to the hieght and width of the layout, So it takes initially as a 0dp of width and all the view elements loads in the page based on the that. just try with fixed layout size like this,

<com.google.ads.AdView android:id="@+id/adView"
    android:layout_width="480dp"
    android:layout_height="75dp"
    android:gravity="bottom"
    ads:adUnitId="..."
    ads:adSize="BANNER"
/>

And also you have to mention admob in the xmlns in the layout xml

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

In resources you have to declare the admob package like this

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="com.admob.android.ads.AdView">
    </declare-styleable>
</resources>

这篇关于AD浏览报未能实例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆