我尝试同时使用最新的AdMob插件和最新的Google Play游戏插件时遇到问题。他们自己工作 - 我已经对此进行了测试,如果我只使用AdMob插件,广告就会显示出来,只有使用Google Play插件才能登录并查看排行榜/成就。
我尝试使用存储库中包含的旧版Google Play插件(GooglePlayGamesPlugin-0.9.21) - Admob工作但不是Play服务。我使用了Google Play的最新插件(GooglePlayGamesPlugin-0.9.30) - 播放服务有效,但如果调用了任何方法,Admob会使应用程序崩溃。
我注意到最新的Google Play插件会自动从Plugins \ Android文件夹中删除我的google-play-services_lib。根据Google的说明,AdMob仍然需要此库才能运行。那么为什么他们的其他插件会自动删除这个文件夹呢?
我进一步调查并发现删除Assets \ GooglePlayGames \ Editor \ GPGSUpgrader.cs文件夹的方法,但将其注释掉只会导致其他错误
// remove the massive play services client lib
string clientDir = "Assets/Plugins/Android/google-play-services_lib";
GPGSUtil.DeleteDirIfExists(clientDir);
作者似乎故意删除文件夹以保持apk大小。这些是我收到的错误:
错误:[Temp / StagingArea / AndroidManifest-main.xml,/ Users / User / Documents / myCStuff / GAMES FOLDER / MyNewGame / Temp / StagingArea / android-libraries / play-services-ads-8.4.0 / AndroidManifest。 xml:10]尝试合并不兼容的/manifest/application/activity[@name=com.google.android.gms.ads.AdActivity]元素:
有人可以从这里协助吗?
答案 0 :(得分:3)
我正在使用Google Play游戏0.9.30和Google移动广告插件2.2.1。他们都很好地一起工作。
首先导入GPG插件并运行设置。然后导入Admob插件并从android sdk复制play-services-ads-8.4.0.aar
sdk/extras/google/m2repository/com/google/android/gms/play-services-ads/8.4.0/play-services-ads-8.4.0.aar
到Assets / Plugins / Android文件夹。
接下来从 Assets / Plugins / Android / GoogleMobileAdsPlugin / AndroidManifest 打开Android清单并发表以下评论
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
现在我能够成功测试非页内广告和GPGS。
答案 1 :(得分:0)
我已成功使用最新的Admob(2.3.1)和最新的Google Play服务插件(0.9.30)。我开始删除旧的Assets \ GoogleMobileAds,Assets \ GooglePlayGames以及整个Assets \ Plugins文件夹。然后资产 - &gt;刷新
我导入了GooglePlayGamesPlugin-0.9.30然后是GoogleMobileAds插件(但我确定订单并不重要)。它将重新创建文件夹
由于作者已创建GooglePlayGames插件以自动在Assets \ Plugins文件夹中创建play-services-ads-8.4.0.aar文件,因此无需从android sdks文件夹中复制任何aar文件
在Assets \ GooglePlayGames \ Editor中查找GPGSDependencies.cs。编辑脚本并将此行添加到底部:
// Google Play服务 svcSupport.DependOn(&#34; com.google.android.gms&#34 ;, &#34;发挥服务的广告&#34;,PluginVersion.PlayServicesVersionConstraint);
<application>
和</application>
之间的所有内容,编辑Assets \ Plugins \ Android \ GoogleMobileAds \ Plugin中的AndroidManifest.xml:并替换为:
<meta-data android:name="com.google.android.gms.games.APP_ID" android:value="\ YOUR_APP_ID"/>
<meta-data android:name="com.google.android.gms.appstate.APP_ID" android:value="\ YOUR_APP_ID"/>
YOUR_APP_ID是您在Google Play开发者控制台中以游戏服务中的游戏名称找到的ID。已经过验证并登录到GPGS,以及查看排行榜,成就,发布以及插页式广告和横幅广告。
答案 2 :(得分:0)
也许你可以试试https://github.com/unity-plugins/Unity-Admob, 它包含gps,你不需要添加额外的gps,版本冲突可能不会退出。