使用Android Studio通过Google Play Services SDK编辑Google广告。当我将此标记添加到我的Android清单文件中时:
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
我收到编译错误,未定义'google_play_services_version'的整数值 - 这些引号内的文字也是错误的红色。有什么问题?
答案 0 :(得分:4)
您会发现许多“提示”和“技巧”可让Android广告使用“新”Google Play服务库运行。其中大部分都会让你追逐你的尾巴,将jar文件添加到'libs'文件夹,并在项目设置/结构界面中添加对这些jar文件中找到的库的引用。事实上,通过Android Studio将Google广告添加到Android项目中需要:
1)将此元标记添加到您的Android清单文件中 - 它可以在打开的“Application”xml标记之间和第一个(主要)“Activity”xml标记之间(文本,如上面的问题中所示,将最初是错误的红色 - 我们将在另一个步骤中解决这个问题:
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
2)将此活动添加到您的Android清单文件中:
<activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
3)到你的“build.gradle”文件(项目文件夹中的那个文件,而不是根文件夹中的那个文件 - 也就是你的“src”文件夹中的那个文件夹,而不是那个符合你的文件夹的文件您的包名称文件夹),将其添加到“依赖项”组(这是缓解问题中描述的错误的步骤):
compile 'com.google.android.gms:play-services:4.0.30'
4)最小目标SDK为9+,目标为13 +。
5)使用“com.google.android.gms.ads.AdView”而不是“com.google.gms.ads ...”小部件。
6)在代码(下面的示例)或xml布局中,实例化AdView,并在调用“mAdView.loadAd(adRequest);”之前,确定设置:
mAdView.setAdSize(AdSize.BANNER); // Or whatever size you like
mAdView.setAdUnitId("YOUR_AD_UNIT_ID"); // Use your ID, requires an AdMob account
7)如果您在MacOS上进行编码并且出现编译器更新错误(例如,从50更新为51),那么您正在使用Java 6.0 SDK进行编译 - 这是一个问题,因为Android Studio只会运行使用6.0,但您可能已经添加了某些AdView库(请在下面的答案中查看“finally”部分),需要7.0编译器。这在这里真的不是问题(给出下面“最后”部分中的注释),但是这里有一个使用Java 7 SDK编译的好资源 - 按照这些说明操作,然后重启Android并让它重新安装6 SDK满足其运营需求:http://www.cc.gatech.edu/~simpkins/teaching/gatech/cs2340/guides/java7-macosx.html
最后,如果您一直在追踪您的尾巴并添加了如上所述的jar / lib设置,那么当您编译时,您将收到错误消息,表明您已复制了AdView / AdRequest的内容等...或者如果您'得到编译器版本错误(敦促你从50更新到51)。只需删除这些jar / lib添加内容,并依赖步骤3中描述的gradle编辑。
这是解决此问题的官方链接:https://developers.google.com/mobile-ads-sdk/docs/