Android的工作室和放大器; AdMob的 - 下面的类不能被实例化 [英] Android Studio & AdMob -- The following classes could not be instantiated
问题描述
我一直在尝试使用AdMob的横幅广告在我的应用程序,但不断收到错误;
以下类不能被实例化: - com.google.android.gms.ads.AdView
java.lang.VerifyError:期待在分支目标57 stackmap框架
异常详细信息:
位置:
COM /谷歌/安卓/ GMS /广告/ AdView.onMeasure(II)V @ 20:IFNULL
原因:
在此位置预计stackmap框架。
字节code:
0000000:033E 0336 042A 03b6 0015 3a05 2ab6 0014
0000010:3a06 1905年C600 2519 05b6 000B 1008 9f00
0000020:1b2a 1905年1b1c B600 1919年05b6 000A 3e19
0000030:05b6 0009 3604 A700 1f19 06c6 001A 2ab6
0000040:0016 3a07 1906年1907年B600 133E 1906年1907年
0000050:B600 1236 041D 2ab6 0018 B800 2a3e 1504
0000060:2ab6 0017 B800 2a36 042A 1D1B B800 0d15
0000070:041c B800 0db6 001A B1
在java.lang.Class.getDeclaredConstructors0(本机方法)
在java.lang.Class.privateGetDeclaredConstructors(Class.java:2658)
在java.lang.Class.getConstructor0(Class.java:2964)
在java.lang.Class.getConstructor(Class.java:1812)
在org.jetbrains.android.ui preview.ViewLoader.createNewInstance(ViewLoader.java:310)
在org.jetbrains.android.ui preview.ViewLoader.loadView(ViewLoader.java:100)
在com.android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.java:172)
在android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207)
在android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:132)
在android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:802)
在android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
在android.view.LayoutInflater.rInflate(LayoutInflater.java:778)
在android.view.LayoutInflater.inflate(LayoutInflater.java:500)
在android.view.LayoutInflater.inflate(LayoutInflater.java:381)
在com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:395)
在com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:329)
在com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:332)
在com.android.tools.idea.rendering.RenderService $ 3.compute(RenderService.java:575)
在com.android.tools.idea.rendering.RenderService $ 3.compute(RenderService.java:564)
在com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:932)
在com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:564)
在com.android.tools.idea.rendering.RenderService.render(RenderService.java:691)
在org.jetbrains.android.ui$p$pview.AndroidLayout$p$pviewToolWindowManager.doRender(AndroidLayout$p$pviewToolWindowManager.java:586)
在org.jetbrains.android.ui$p$pview.AndroidLayout$p$pviewToolWindowManager.access$1900(AndroidLayout$p$pviewToolWindowManager.java:80)
在org.jetbrains.android.ui$p$pview.AndroidLayout$p$pviewToolWindowManager$6$1.run(AndroidLayout$p$pviewToolWindowManager.java:528)
在com.intellij.openapi.progress.impl.ProgressManagerImpl $ 2.运行(ProgressManagerImpl.java:178)
在com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209)
在com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212)
在com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171)
在org.jetbrains.android.ui$p$pview.AndroidLayout$p$pviewToolWindowManager$6.run(AndroidLayout$p$pviewToolWindowManager.java:523)
在com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320)
在com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310)
在com.intellij.util.ui.update.MergingUpdateQueue $ 2.运行(MergingUpdateQueue.java:254)
在com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269)
在com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227)
在com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217)
在com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
在com.intellij.util.Alarm $请求$ 1.运行(Alarm.java:327)
在java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)
在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617)
在java.lang.Thread.run(Thread.java:745)
我已经想尽解决方案,我在这里可以找到与谷歌搜索。我有;
编译com.google.android.gms:玩-服务:5.0.77
在我的摇篮。我已经进入此处指定的所有部分;
https://developers.google.com/mobile-ads-sdk/docs /
但仍然一无所获。希望有人能帮助..!
干杯
activity_main.xml
< RelativeLayout的的xmlns:机器人=http://schemas.android.com/apk/res/android
的xmlns:广告=http://schemas.android.com/apk/res-auto
的xmlns:广告=http://schemas.android.com/apk/lib/com.google.ads
的xmlns:工具=http://schemas.android.com/tools
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:以下属性来=@扪/ activity_horizontal_margin
机器人:paddingRight =@扪/ activity_horizontal_margin
机器人:paddingTop =@扪/ activity_vertical_margin
机器人:paddingBottom会=@扪/ activity_vertical_margin
的xmlns:广告=http://schemas.android.com/apk/res-auto
工具:主上下文=>
<的TextView
机器人:文本=测试
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_marginBottom =91dp
机器人:身高=150dp
机器人:layout_alignParentBottom =真
机器人:layout_alignParentLeft =真
机器人:layout_alignParentStart =真
机器人:layout_alignParentRight =真
机器人:layout_alignParentEnd =真
机器人:ID =@ + ID / txtTest/>
<按钮
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:文本=新按钮
机器人:ID =@ + ID /按钮
机器人:layout_above =@ + ID / txtTest
机器人:layout_alignParentLeft =真
机器人:layout_alignParentStart =真
机器人:的onClick =buttonOnClick/>
< com.google.android.gms.ads.AdView机器人:ID =@ + ID / AD浏览报
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
广告:adUnitId =MY_AD_UNIT_ID
广告:adSize =大旗/>
< / RelativeLayout的>
AndroidManifest.xml中
< XML版本=1.0编码=UTF-8&GT?;
<舱单的xmlns:机器人=http://schemas.android.com/apk/res/android
的xmlns:广告=http://schemas.android.com/apk/lib/com.google.ads
包=com.example.betty8080.brentmeister>
<应用
机器人:allowBackup =真
机器人:图标=@可绘制/ ic_launcher
机器人:标签=@字符串/ APP_NAME
机器人:主题=@风格/ AppTheme>
<元数据的android:NAME =com.google.android.gms.version
机器人:值=@整数/ google_play_services_version/>
<活动
机器人:主名称=
机器人:标签=@字符串/ APP_NAME>
<意向滤光器>
<作用机器人:名称=android.intent.action.MAIN/>
<类机器人:名称=android.intent.category.LAUNCHER/>
&所述; /意图滤光器>
< /活性GT;
<活动机器人:名称=com.google.android.gms.ads.AdActivity
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
< /用途>
<使用-权限的Android:名称=android.permission.INTERNET对/>
<使用-权限的Android:名称=android.permission.ACCESS_NETWORK_STATE/>
< /舱单>
build.gradle(依赖)
相关性{
编译文件树(包括:['的* .jar'],DIR:库)
编译com.google.android.gms:播放服务:5.0.77
}
我想preVIEW当自定义视图AD浏览报有同样的问题。我的项目是通过使用的IntelliJ社区版摇篮(13.x)构建的,我结束了改变谷歌的版本从
播放服务 编译com.google.android.gms:玩-服务:5 +'
到
编译com.google.android.gms:玩-服务:4 +
具体而言,我改变了我的摇篮文件的相关部分如下:
相关性{
编译文件树(导演:库,包括:['的* .jar'])
编译com.google.android.gms:播放服务:4 +
}
I have been trying to use an AdMob banner ad in my app but keep getting the error;
The following classes could not be instantiated: - com.google.android.gms.ads.AdView
java.lang.VerifyError: Expecting a stackmap frame at branch target 57
Exception Details:
Location:
com/google/android/gms/ads/AdView.onMeasure(II)V @20: ifnull
Reason:
Expected stackmap frame at this location.
Bytecode:
0000000: 033e 0336 042a 03b6 0015 3a05 2ab6 0014
0000010: 3a06 1905 c600 2519 05b6 000b 1008 9f00
0000020: 1b2a 1905 1b1c b600 1919 05b6 000a 3e19
0000030: 05b6 0009 3604 a700 1f19 06c6 001a 2ab6
0000040: 0016 3a07 1906 1907 b600 133e 1906 1907
0000050: b600 1236 041d 2ab6 0018 b800 2a3e 1504
0000060: 2ab6 0017 b800 2a36 042a 1d1b b800 0d15
0000070: 041c b800 0db6 001a b1
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2658)
at java.lang.Class.getConstructor0(Class.java:2964)
at java.lang.Class.getConstructor(Class.java:1812)
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:310)
at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:100)
at com.android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.java:172)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:132)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:802)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:778)
at android.view.LayoutInflater.inflate(LayoutInflater.java:500)
at android.view.LayoutInflater.inflate(LayoutInflater.java:381)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:395)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:329)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:332)
at com.android.tools.idea.rendering.RenderService$3.compute(RenderService.java:575)
at com.android.tools.idea.rendering.RenderService$3.compute(RenderService.java:564)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:932)
at com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:564)
at com.android.tools.idea.rendering.RenderService.render(RenderService.java:691)
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:586)
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1900(AndroidLayoutPreviewToolWindowManager.java:80)
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$6$1.run(AndroidLayoutPreviewToolWindowManager.java:528)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178)
at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171)
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$6.run(AndroidLayoutPreviewToolWindowManager.java:523)
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320)
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310)
at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254)
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269)
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227)
at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
at com.intellij.util.Alarm$Request$1.run(Alarm.java:327)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
I have tried every solution I can find on here and by Googling. I have;
compile 'com.google.android.gms:play-services:5.0.77'
in my gradle. I have entered all the parts specified here;
https://developers.google.com/mobile-ads-sdk/docs/
But still nothing. Hope someone can help..!
Cheers
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
xmlns:ads="http://schemas.android.com/apk/res-auto"
tools:context=".Main">
<TextView
android:text="Test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="91dp"
android:height="150dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:id="@+id/txtTest" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button"
android:layout_above="@+id/txtTest"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:onClick="buttonOnClick" />
<com.google.android.gms.ads.AdView android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="MY_AD_UNIT_ID"
ads:adSize="BANNER"/>
</RelativeLayout>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
package="com.example.betty8080.brentmeister" >
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name=".Main"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
</application>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
</manifest>
build.gradle (dependencies)
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.android.gms:play-services:5.0.77'
}
I had the same problem when trying to preview the custom view AdView. My project is built using gradle via Intellij community edition (13.x) and I ended up changing the version of google play services from
compile 'com.google.android.gms:play-services:5.+'
to
compile 'com.google.android.gms:play-services:4.+'
specifically, I changed the dependencies section of my gradle file to look like this:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services:4.+'
}
这篇关于Android的工作室和放大器; AdMob的 - 下面的类不能被实例化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!