在'RequiresPermission'类型中找不到注释方法'anyOf()':

时间:2016-04-26 15:59:05

标签: android xamarin xamarin.android

我正在尝试将Android Studio中的Android应用移植到Visual Studio 2015 / Xamarin。我尝试运行该项目,然后得到:

    Android application is debugging.
    The application could not be started. Ensure that the application has been installed to the target device and has a launchable activity (MainLauncher = true).

Additionally, check Build->Configuration Manager to ensure this project is set to Deploy for this configuration.

我将[Activity(MainLauncher = true)]添加到主要课程并检查Build->Configuration这似乎是正确的,但这些都没有效果。

我收到了这个警告:

Cannot find annotation method 'anyOf()' in type 'RequiresPermission': 
class file for android.support.annotation.RequiresPermission not found  
MyApplication.Native.Droid  C:\Users\allelopath\AppData\Local\Xamarin\GooglePlayServices.Maps\8.4.0\embedded\classes.jar(com/google/android/gms/maps/GoogleMap.class)   

我也收到了这个警告:

Warning     
Found conflicts between different versions of the same dependent assembly. 
In Visual Studio, double-click this warning (or select it and press Enter) to fix the conflicts; 
otherwise, add the following binding redirects to the "runtime" node in the application configuration file:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly><assemblyIdentity name="System.Net.Http" culture="neutral" publicKeyToken="b03f5f7f11d50a3a" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /></dependentAssembly></assemblyBinding> 
Acquaint.Native.Droid           

我按照建议双击,并询问:

Do you want to fix these conflicts by adding binding redirrect records in the application configuration file?

我点击是。这最终没有效果,在重建并尝试运行后,警告再次出现。

我在设备上卸载了应用程序,该程序已在Android Studio上运行,但这也没有效果。

你有什么建议?

1 个答案:

答案 0 :(得分:1)

对于第一个问题,我会右键单击您的解决方案,转到配置属性并确保正在构建所有正确的项目,并检查您的Android项目的部署框。这只是一个糟糕的Xamarin倾向。

我自己有第二个警告,这只是因为Android支持库要求您针对sdk版本23进行编译.Google地图包必须使用这些新注释。由于这个错误,我没有遇到任何问题,minSdkVersion为15,所以我只是忍受它。

我也有相同的依赖程序集警告,我认为正在发生的是我有一个项目正在使用.net原语的新引用,而不是.net http正在使用的。只是一个猜测,但我也不担心让这快乐。