Unity 中使用 Google AdMob 的問題 – Problems of Google Admob Unity Plugin

紀錄在 Unity 中使用 Google AdMob 服務的除錯過程。

主要使用Google官方提供的Unity Plugin:https://github.com/googleads/googleads-mobile-unity

問題 #1: Failed to re-package resources

Date: 2016/5/25

Plugin version: v3.0.3

Error log of unity:

Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for details.
AndroidManifest.xml:13: Tag <provider> attribute authorities has invalid character '$'.

原因分析

在最新的 Google Admob 服務中,底層的追蹤改成使用 Firebase 為基礎,專案也因此需要相關的 SDK,不過在 Firebase 中預設的 AndroidManifest.xml 有個 ${applicationId} 的欄位需要處理。但是這個檔案卻是由 Unity 解壓縮生成於 Temp 資料夾,我的所有變動都會在建置時被重置而毫無意義。

TempStagingAreaandroid-librariesfirebase-common-9.0.1AndroidManifest.xml

<provider
 android:authorities="${applicationId}.firebaseinitprovider"
 android:name=".provider.FirebaseInitProvider"
 android:exported="false"
 android:initOrder="100" />

解決方法

暫無

20160530 Update:Google 將 Plugin 更新到 v3.0.4,可以在 PluginsAndroidfirebase-common-9.0.1AndroidManifest.xml 中設定。

 

問題 #2: Unable to convert classes into dex format

Date: 2016/5/30

Plugin version: v3.0.4

Error log of unity:

Error building Player: CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details.

原因分析

在這個版本的 Plugin 中有兩個版本的 Google Play Service 同時存在,造成了不相容。

解決方法

如果不需要相關的功能,可以不匯入檔案尾端為 8.4.0 的相關文件。或者不要在建置的時候將這些檔案包含進去 (點選檔案後不勾選Android)

需要相關服務則至 https://github.com/playgameservices/play-games-plugin-for-unity 使用 Plugin 更新到相對應的版本

 

小抱怨:Google 怎麼連這兩個小小的Plgin之間的聯動都要這樣更新不全啊
廣告

2 thoughts on “Unity 中使用 Google AdMob 的問題 – Problems of Google Admob Unity Plugin

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s