Unity AdMob插件版本2.3.1和Unity Google Play游戏插件0.9.30无法一起工作

时间:2016-01-30 21:52:20

标签: android plugins unity3d admob google-play-games

我尝试同时使用最新的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]元素:

有人可以从这里协助吗?

3 个答案:

答案 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文件夹。

enter image description here

接下来从 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)

  1. 我已成功使用最新的Admob(2.3.1)和最新的Google Play服务插件(0.9.30)。我开始删除旧的Assets \ GoogleMobileAds,Assets \ GooglePlayGames以及整个Assets \ Plugins文件夹。然后资产 - &gt;刷新

  2. 我导入了GooglePlayGamesPlugin-0.9.30然后是GoogleMobileAds插件(但我确定订单并不重要)。它将重新创建文件夹

  3. 由于作者已创建GooglePlayGames插件以自动在Assets \ Plugins文件夹中创建play-services-ads-8.4.0.aar文件,因此无需从android sdks文件夹中复制任何aar文件

  4. 在Assets \ GooglePlayGames \ Editor中查找GPGSDependencies.cs。编辑脚本并将此行添加到底部:

  5.   

    // Google Play服务             svcSupport.DependOn(&#34; com.google.android.gms&#34 ;,                 &#34;发挥服务的广告&#34;,PluginVersion.PlayServicesVersionConstraint);

    1. 通过删除<application></application>之间的所有内容,编辑Assets \ Plugins \ Android \ GoogleMobileAds \ Plugin中的AndroidManifest.xml:
    2. 并替换为:

      <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,版本冲突可能不会退出。