AD浏览报未能实例 [英] AdView failed to instantiate
问题描述
我想包括在我的应用程序的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:广告=http://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屋!