[英]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.