Unity AdMob 插件 2.3.1 版和 Unity Google Play 游戏插件 0.9.30 不能一起使用
Posted
技术标签:
【中文标题】Unity AdMob 插件 2.3.1 版和 Unity Google Play 游戏插件 0.9.30 不能一起使用【英文标题】:Unity AdMob Plugin version 2.3.1 and Unity Google Play Game Plugin 0.9.30 doesn't work together 【发布时间】:2016-05-08 13:10:40 【问题描述】:我在尝试同时使用最新的 AdMob 插件和最新的 Google Play 游戏插件时遇到问题。他们自己工作 - 我已经对此进行了测试,如果我只使用 AdMob 插件,我就会显示广告,并且我可以在只使用 Google Play 插件时登录并查看排行榜/成就。
我尝试使用存储库中包含的较旧版本的 Google Play 插件 (GooglePlayGamesPlugin-0.9.21) - Admob 有效,但 Play Services 无效。我使用了最新的 Google Play 插件 (GooglePlayGamesPlugin-0.9.30) - Play Services 工作正常,但如果调用任何方法,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] 元素:
任何人都可以从这里协助吗?
【问题讨论】:
对我来说同样的问题我通过更改广告网络解决了它:D。有一个关于 google play 服务和 admob 的问题。您可以从这里关注更新。 github.com/googleads/googleads-mobile-unity/issues/149. 这太疯狂了……Google Play 游戏更新到 0.9.30 只是几天前。从我一直在阅读的所有线程中,他们几个月来都有这个问题。如果他们没有真正的解决方案,我只想解决 AdMob 问题。 【参考方案1】:我正在使用 Google Play Games 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。
【讨论】:
见我上面的解决方案。在撰写本文时可与最新的 Admob 和 GPGS 插件配合使用。 感谢您的回答。谷歌是一种姿态。【参考方案2】:我已经能够成功使用最新的 Admob (2.3.1) 和最新的 Google Play 服务插件 (0.9.30)。我通过删除旧的 Assets\GoogleMobileAds、Assets\GooglePlayGames 和整个 Assets\Plugins 文件夹重新开始。然后资产 --> 刷新
我导入了 GooglePlayGamesPlugin-0.9.30,然后导入了 GoogleMobileAds 插件(但我确信顺序无关紧要)。它将重新创建文件夹
由于作者已经创建了GooglePlayGames插件自动在Assets\Plugins文件夹中创建play-services-ads-8.4.0.aar文件,因此无需从android sdks文件夹中复制任何aar文件.
在 Assets\GooglePlayGames\Editor 中查找 GPGSDependencies.cs。编辑脚本并将这一行添加到底部:
// 谷歌播放服务 svcSupport.DependOn("com.google.android.gms", "play-services-ads",PluginVersion.PlayServicesVersionConstraint);
-
编辑 Assets\Plugins\Android\GoogleMobileAds\Plugin 中的 AndroidManifest.xml,删除
<application>
和 </application>
之间的所有内容:
并替换为:
<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 可以正常工作,以及查看排行榜、成就、发布,当然还有插页式广告和横幅广告。
【讨论】:
【参考方案3】:也许你可以试试https://github.com/unity-plugins/Unity-Admob, 它包含gps,您不需要添加额外的gps,版本冲突可能不会退出。
【讨论】:
以上是关于Unity AdMob 插件 2.3.1 版和 Unity Google Play 游戏插件 0.9.30 不能一起使用的主要内容,如果未能解决你的问题,请参考以下文章
Unity3d 游戏中集成Firebase 统计和Admob广告最新中文教程