我正在编写代码以在我的Android应用中显示Admob Banner。为了达到这个目的,我做了以下几点调整:
已添加
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
和
<meta-data
android:name="com.google.android.gms.version"
android:value="4323000" />
我的清单文件中的代码,还添加了以下权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
当我尝试运行应用程序时会出现问题,它会抛出以下异常:
05-07 14:51:17.617: E/AndroidRuntime(7877): FATAL EXCEPTION: main
05-07 14:51:17.617: E/AndroidRuntime(7877): java.lang.NoClassDefFoundError: com.google.android.gms.ads.AdView
05-07 14:51:17.617: E/AndroidRuntime(7877): at com.atc.hums.HumsActivity.onCreate(HumsActivity.java:458)
05-07 14:51:17.617: E/AndroidRuntime(7877): at android.app.Activity.performCreate(Activity.java:5165)
05-07 14:51:17.617: E/AndroidRuntime(7877): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1103)
05-07 14:51:17.617: E/AndroidRuntime(7877): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2419)
05-07 14:51:17.617: E/AndroidRuntime(7877): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2520)
05-07 14:51:17.617: E/AndroidRuntime(7877): at android.app.ActivityThread.access$600(ActivityThread.java:162)
05-07 14:51:17.617: E/AndroidRuntime(7877): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1366)
05-07 14:51:17.617: E/AndroidRuntime(7877): at android.os.Handler.dispatchMessage(Handler.java:99)
05-07 14:51:17.617: E/AndroidRuntime(7877): at android.os.Looper.loop(Looper.java:158)
05-07 14:51:17.617: E/AndroidRuntime(7877): at android.app.ActivityThread.main(ActivityThread.java:5751)
05-07 14:51:17.617: E/AndroidRuntime(7877): at java.lang.reflect.Method.invokeNative(Native Method)
05-07 14:51:17.617: E/AndroidRuntime(7877): at java.lang.reflect.Method.invoke(Method.java:511)
05-07 14:51:17.617: E/AndroidRuntime(7877): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1083)
05-07 14:51:17.617: E/AndroidRuntime(7877): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:850)
05-07 14:51:17.617: E/AndroidRuntime(7877): at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:3)
根据Google Play Services setup guide,不仅仅是“添加罐子”。 由于GPS捆绑了资源,您必须将其作为新的单独项目导入,并从您自己的现有项目中引用它。
请按照设置指南进行操作。我刚刚确认我可以从我自己的GPS项目中成功引用AdView
。
GPS是一项外部服务 - 它是由Play商店应用管理的APK,您需要确保用户拥有最新的GPS APK和/或符合您想要的功能。以下是指南:Ensure Devices Have the Google Play services APK。
如果设备没有安装GPS(不是Google设备,特殊ROM,AOSP ROM,旧Android等等),则无法使用AdView。
答案 1 :(得分:0)
我认为你应该遵循这些步骤
第一步:您应该登录到admob帐户并在那里添加一个没有url的应用程序。点击管理应用程序,从xml布局中的adunitId请放置以下代码。
<com.google.ads.AdView android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="youradunitid"
ads:adSize="BANNER"
ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"
ads:loadAdOnCreate="true"/>
第二步:在主要活动中,请不要再添加adview,因为您已经在xml中添加了adview,请不要忘记将loadAdOnCreate = true
第三步:
您已经为清单添加了必要条件。
第四步:当您在模拟器上运行时,它会提供测试广告
第五步:现在您已准备好在设备上启动