[英]Xamarin.Android Google Play Services dependency via AAR Binding
我正在使用Visual Studio 2015 Update 3編寫適用於Android和iOS的Xamarin跨平台應用程序。 我需要利用Java編寫的第三方SDK來實現與Push消息相關的功能。 對於該解決方案的Android方面,我已經嘗試了很多很多事情(現在已經過了幾天),但是沒有成功。 我想解決以下問題:
自從通過NuGet將Google Play服務包含到myApp.Android.BindSDK項目中以來,我收到以下編譯錯誤:
error APT0000: No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version').
我已經嘗試了很多在論壇上發布的內容,例如關閉解決方案,刪除bin和obj文件夾,從AAR中的JAR中的JAR中提取version.xml文件以用於Google Play等,等等。它仍然會收到此構建錯誤。
有沒有人有一個很好的例子說明如何為本身依賴於Google Play服務的android / Java SDK創建Xamarin綁定包裝?
檢查您的綁定項目的.csproj
包含Xamarin.GooglePlayServices.Basement.targets
因為該包中的資源任務是提取Play服務版本並將其添加到庫資源中的任務:
例:
<Import Project="..\packages\Xamarin.GooglePlayServices.Basement.42.1001.0\build\MonoAndroid70\Xamarin.GooglePlayServices.Basement.targets" Condition="Exists('..\packages\Xamarin.GooglePlayServices.Basement.42.1001.0\build\MonoAndroid70\Xamarin.GooglePlayServices.Basement.targets')" />
此外,檢查結合項目清單尚未包含一個條目com.google.android.gms.version
,因為這應該是自動生成/編譯過程合並:
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
注意:我從來沒有在包含Play Services的綁定項目中手動執行此操作,遇到了一些客戶端的綁定項目,這些項目會導致.aar
資源合並過程在引用的程序包上失敗(假設在其中存在沖突的Play Services資源.aar
但修改第三方.aar
通常不值得)
在Resources
目錄中,創建一個values
文件夾,並添加一個帶有google_play_services_version
整數值的values.xml
文件:
<integer name="google_play_services_version">10084000</integer>
注意:如果Google Play服務版本更改,則需要更新版本值,否則您的應用最終會引發奇怪的錯誤,尤其是在您進行InApp購買時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.