【问题标题】:"Could not find mandroid!" VS Community xamarin“找不到 mandroid!” VS 社区 xamarin
【发布时间】:2016-05-03 10:29:07
【问题描述】:

我刚刚下载了包含 Xamarin 4.0.3214 的 VS 社区,当我创建一个空的 android 项目然后尝试构建它时,我收到以下错误和警告:

Could not find mandroid!
The referenced component 'System.Core' could not be found.
The referenced component 'System.Xml.Linq' could not be found.

和其他类似的错误。

我尝试删除 xamarin 并重新安装,但没有成功。

更新:

当我按照建议检查日志时,我发现了一些错误:

MonoDroidLog Information: 0 : [2016-05-03 01:09:28.0141] [I:sdk]:                  Looking for Android SDK..
MonoDroidLog Information: 0 : [2016-05-03 01:09:28.0161] [I:sdk]:                    Key HKCU\SOFTWARE\Novell\Mono for Android\AndroidSdkDirectory found:
    Path contains adb.exe in \platform-tools (C:\Users\lenovo\AppData\Local\Android\android-sdk).
MonoDroidLog Information: 0 : [2016-05-03 01:09:28.0161] [I:sdk]:                    Key HKLM\SOFTWARE\Novell\Mono for Android\AndroidSdkDirectory found:
    Path does not contain adb.exe in \platform-tools (C:\android-sdk-windows).
MonoDroidLog Information: 0 : [2016-05-03 01:09:28.0171] [I:sdk]:                    Key HKCU\SOFTWARE\Xamarin\MonoAndroid\PrivateAndroidSdkPath not found.
MonoDroidLog Information: 0 : [2016-05-03 01:09:28.0191] [I:sdk]:                    Key HKCU\SOFTWARE\Android SDK Tools\Path not found.
MonoDroidLog Information: 0 : [2016-05-03 01:09:28.0201] [I:sdk]:                    Key HKLM\SOFTWARE\Android SDK Tools\Path found:
    Path contains adb.exe in \platform-tools (C:\Users\lenovo\AppData\Local\Android\android-sdk).
MonoDroidLog Information: 0 : [2016-05-03 01:09:28.0211] [I:sdk]:                  Looking for Android NDK..
MonoDroidLog Information: 0 : [2016-05-03 01:09:28.0231] [I:sdk]:                    Key HKCU\SOFTWARE\Novell\Mono for Android\AndroidNdkDirectory found:
    Path contains ndk-stack.exe in \. (C:\Users\lenovo\Documents\Android\ndk\android-ndk-r10d).
MonoDroidLog Information: 0 : [2016-05-03 01:09:28.0251] [I:sdk]:                    Key HKLM\SOFTWARE\Novell\Mono for Android\AndroidNdkDirectory not found.
MonoDroidLog Information: 0 : [2016-05-03 01:09:28.0251] [I:sdk]:                    Key HKCU\SOFTWARE\Novell\Mono for Android\JavaSdkDirectory found:
    Path contains jarsigner.exe in \bin (C:\Program Files (x86)\Java\jdk1.7.0_71).
MonoDroidLog Information: 0 : [2016-05-03 01:09:28.0261] [I:Unknown]:              Found Android SDK. API levels: (none)
MonoDroidLog Information: 0 : [2016-05-03 01:09:28.0271] [I:Unknown]:              Did not find Xamarin.Android
MonoDroidLog Information: 0 : [2016-05-03 01:09:31.0123] [I:]:                     Tracking android devices started
MonoDroidLog Information: 0 : [2016-05-03 01:09:31.0423] [D:]:                     Tracking avd started
MonoDroidLog Information: 0 : [2016-05-03 01:09:31.0433] [D:]:                     avd watcher *.ini path: 'C:\Users\lenovo\.android\avd'
MonoDroidLog Information: 0 : [2016-05-03 01:09:31.0443] [D:]:                     avd watcher android path: 'C:\Users\lenovo\AppData\Local\Android\ANDROI~1\tools\android.bat'
MonoDroidLog Information: 0 : [2016-05-03 01:09:31.0553] [D:]:                     TrackDeviceTask got: 
MonoDroidLog Information: 0 : [2016-05-03 01:09:31.0583] [I:]:                     Got new device list from adb with 0 devices
MonoDroidLog Information: 0 : [2016-05-03 01:09:32.9514] [D:]:                     avd watcher: got device list from avd with 2 devices
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0717] [I:sdk]:                  Looking for Android SDK..
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0727] [I:sdk]:                    Key HKCU\SOFTWARE\Novell\Mono for Android\AndroidSdkDirectory found:
    Path contains adb.exe in \platform-tools (C:\Users\lenovo\AppData\Local\Android\android-sdk).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0737] [I:sdk]:                    Key HKLM\SOFTWARE\Novell\Mono for Android\AndroidSdkDirectory found:
    Path does not contain adb.exe in \platform-tools (C:\android-sdk-windows).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0737] [I:sdk]:                    Key HKCU\SOFTWARE\Xamarin\MonoAndroid\PrivateAndroidSdkPath not found.
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0747] [I:sdk]:                    Key HKCU\SOFTWARE\Android SDK Tools\Path not found.
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0757] [I:sdk]:                    Key HKLM\SOFTWARE\Android SDK Tools\Path found:
    Path contains adb.exe in \platform-tools (C:\Users\lenovo\AppData\Local\Android\android-sdk).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0767] [I:sdk]:                  Looking for Android NDK..
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0767] [I:sdk]:                    Key HKCU\SOFTWARE\Novell\Mono for Android\AndroidNdkDirectory found:
    Path contains ndk-stack.exe in \. (C:\Users\lenovo\Documents\Android\ndk\android-ndk-r10d).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0777] [I:sdk]:                    Key HKLM\SOFTWARE\Novell\Mono for Android\AndroidNdkDirectory not found.
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0787] [I:sdk]:                    Key HKCU\SOFTWARE\Novell\Mono for Android\JavaSdkDirectory found:
    Path contains jarsigner.exe in \bin (C:\Program Files (x86)\Java\jdk1.7.0_71).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0787] [I:Unknown]:              Found Android SDK. API levels: (none)
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0797] [I:Unknown]:              Did not find Xamarin.Android
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0827] [I:sdk]:                  Looking for Android SDK..
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0827] [I:sdk]:                    Key HKCU\SOFTWARE\Novell\Mono for Android\AndroidSdkDirectory found:
    Path contains adb.exe in \platform-tools (C:\Users\lenovo\AppData\Local\Android\android-sdk).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0837] [I:sdk]:                    Key HKLM\SOFTWARE\Novell\Mono for Android\AndroidSdkDirectory found:
    Path does not contain adb.exe in \platform-tools (C:\android-sdk-windows).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0847] [I:sdk]:                    Key HKCU\SOFTWARE\Xamarin\MonoAndroid\PrivateAndroidSdkPath not found.
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0847] [I:sdk]:                    Key HKCU\SOFTWARE\Android SDK Tools\Path not found.
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0857] [I:sdk]:                    Key HKLM\SOFTWARE\Android SDK Tools\Path found:
    Path contains adb.exe in \platform-tools (C:\Users\lenovo\AppData\Local\Android\android-sdk).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0867] [I:sdk]:                  Looking for Android NDK..
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0877] [I:sdk]:                    Key HKCU\SOFTWARE\Novell\Mono for Android\AndroidNdkDirectory found:
    Path contains ndk-stack.exe in \. (C:\Users\lenovo\Documents\Android\ndk\android-ndk-r10d).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0877] [I:sdk]:                    Key HKLM\SOFTWARE\Novell\Mono for Android\AndroidNdkDirectory not found.
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0887] [I:sdk]:                    Key HKCU\SOFTWARE\Novell\Mono for Android\JavaSdkDirectory found:
    Path contains jarsigner.exe in \bin (C:\Program Files (x86)\Java\jdk1.7.0_71).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0897] [I:Unknown]:              Found Android SDK. API levels: (none)
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0897] [I:Unknown]:              Did not find Xamarin.Android
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0927] [I:sdk]:                  Looking for Android SDK..
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0937] [I:sdk]:                    Key HKCU\SOFTWARE\Novell\Mono for Android\AndroidSdkDirectory found:
    Path contains adb.exe in \platform-tools (C:\Users\lenovo\AppData\Local\Android\android-sdk).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0937] [I:sdk]:                    Key HKLM\SOFTWARE\Novell\Mono for Android\AndroidSdkDirectory found:
    Path does not contain adb.exe in \platform-tools (C:\android-sdk-windows).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0947] [I:sdk]:                    Key HKCU\SOFTWARE\Xamarin\MonoAndroid\PrivateAndroidSdkPath not found.
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0957] [I:sdk]:                    Key HKCU\SOFTWARE\Android SDK Tools\Path not found.
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0957] [I:sdk]:                    Key HKLM\SOFTWARE\Android SDK Tools\Path found:
    Path contains adb.exe in \platform-tools (C:\Users\lenovo\AppData\Local\Android\android-sdk).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0967] [I:sdk]:                  Looking for Android NDK..
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0977] [I:sdk]:                    Key HKCU\SOFTWARE\Novell\Mono for Android\AndroidNdkDirectory found:
    Path contains ndk-stack.exe in \. (C:\Users\lenovo\Documents\Android\ndk\android-ndk-r10d).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0987] [I:sdk]:                    Key HKLM\SOFTWARE\Novell\Mono for Android\AndroidNdkDirectory not found.
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.0997] [I:sdk]:                    Key HKCU\SOFTWARE\Novell\Mono for Android\JavaSdkDirectory found:
    Path contains jarsigner.exe in \bin (C:\Program Files (x86)\Java\jdk1.7.0_71).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.1077] [I:Unknown]:              Found Android SDK. API levels: (none)
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.1087] [I:Unknown]:              Did not find Xamarin.Android
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.1107] [I:sdk]:                  Looking for Android SDK..
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.1117] [I:sdk]:                    Key HKCU\SOFTWARE\Novell\Mono for Android\AndroidSdkDirectory found:
    Path contains adb.exe in \platform-tools (C:\Users\lenovo\AppData\Local\Android\android-sdk).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.1117] [I:sdk]:                    Key HKLM\SOFTWARE\Novell\Mono for Android\AndroidSdkDirectory found:
    Path does not contain adb.exe in \platform-tools (C:\android-sdk-windows).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.1127] [I:sdk]:                    Key HKCU\SOFTWARE\Xamarin\MonoAndroid\PrivateAndroidSdkPath not found.
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.1137] [I:sdk]:                    Key HKCU\SOFTWARE\Android SDK Tools\Path not found.
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.1147] [I:sdk]:                    Key HKLM\SOFTWARE\Android SDK Tools\Path found:
    Path contains adb.exe in \platform-tools (C:\Users\lenovo\AppData\Local\Android\android-sdk).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.1157] [I:sdk]:                  Looking for Android NDK..
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.1157] [I:sdk]:                    Key HKCU\SOFTWARE\Novell\Mono for Android\AndroidNdkDirectory found:
    Path contains ndk-stack.exe in \. (C:\Users\lenovo\Documents\Android\ndk\android-ndk-r10d).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.1167] [I:sdk]:                    Key HKLM\SOFTWARE\Novell\Mono for Android\AndroidNdkDirectory not found.
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.1167] [I:sdk]:                    Key HKCU\SOFTWARE\Novell\Mono for Android\JavaSdkDirectory found:
    Path contains jarsigner.exe in \bin (C:\Program Files (x86)\Java\jdk1.7.0_71).
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.1177] [I:Unknown]:              Found Android SDK. API levels: (none)
MonoDroidLog Information: 0 : [2016-05-03 01:09:39.1187] [I:Unknown]:              Did not find Xamarin.Android

【问题讨论】:

  • 此文件是否存在 ProgramFiles(x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\mscorlib.dll ?看起来像 bugzilla.xamarin.com/show_bug.cgi?id=24216 针对这个问题提出了一个错误并在 Xamarin 3.8 中修复
  • 我尝试删除引用并重新添加它,它旁边出现黄色标志

标签: xamarin visual-studio-2015 xamarin.android xamarin.forms


【解决方案1】:

找不到mandroid!

  1. 请检查您的系统上是否存在以下所有文件:

    • %ProgramFiles(x86)%\MSBuild\Xamarin\Android\Mono.Android.DebugRuntime-debug.apk
    • %ProgramFiles(x86)%\MSBuild\Xamarin\Android\Ionic.Zip.dll
    • %ProgramFiles(x86)%\MSBuild\Xamarin\Android\mandroid.exe
    • %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\mscorlib.dll
  2. 如果这些文件中的任何一个丢失,您可以尝试完全卸载并重新安装:

    • 从“程序和功能”控制面板中卸载“Xamarin”包。
    • 手动删除以下 2 个文件夹(如果其中一个仍然存在):

      • %ProgramFiles(x86)%\MSBuild\Xamarin\Android
      • %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\MonoAndroid
    • 重新安装 Xamarin。
  3. 如果在完全卸载、重新安装并重新启动后,步骤 1 中的任何文件仍然丢失,最好检查您运行的任何病毒防护软件看看它是否可能已经隔离了丢失的文件。

  4. 作为另一种可能的解决方法,您可以尝试从 Xamarin.VisualStudio .msi 文件中手动提取丢失的文件。特别是,您可以使用带有TARGETDIR 属性的msiexec 命令将.msi 提取到一个临时文件夹(请参阅https://stackoverflow.com/a/8841965),然后将文件从该临时文件夹复制到其正确的安装位置。如果您没有.msi 的副本,您可以从your account page 下载它,如https://kb.xamarin.com/customer/portal/articles/1699777 的“下载链接”下所示。

找不到引用的组件“System.Core”。
找不到引用的组件“System.Xml.Linq”。

这些消息有时会显示为与“找不到 mandroid!”无关的单独警告。错误/警告。出现这些消息的最常见原因之一是找不到 Android SDK 或 Java SDK。为了帮助排除这种可能性,请确保在 Tools > Options > Xamarin > Android Settings 下两条路径都带有绿色复选标记。

其他尝试的步骤

如果上述步骤都没有帮助(例如,如果所有预期的文件都存在,但您仍然收到“Could not find mandroid!”消息),您可以检查日志文件可能的额外线索:

  1. 在 Visual Studio 中选择 Help > Xamarin > Open Logs...

  2. 检查最新的*Ide.logmonodroid*.log 文件。

【讨论】:

  • 感谢您的帮助,我发现 mandroid 丢失并按照您的建议发送电子邮件以获取它,关于我发现的第二个错误路径出现绿色复选标记,通过检查日志我发现了一些错误,我用日志@Brendan Zagaeski 更新了帖子
  • 我会推迟尝试调查第二个问题,直到您确实解决了步骤 1 中任何丢失文件的问题。如果您已经解决了“找不到 mandroid!”错误,但您仍然有其他警告/错误,我建议专门针对这些问题开始一个新问题。你可以在这里链接到那个新问题,我会看看。
  • 好的,我删除了 xamarin 并从 link 重新安装了一个新版本,现在每个文件都在适当的位置,但仍然出现相同的错误“找不到 mandroid!” ,新问题link感谢您的帮助@Brendan Zagaeski
  • 重启后我现在检查它时我没有找到 mandroid.exe,所以我删除了防病毒软件并再次重新安装 xamarin 并且它有效,非常感谢
  • 优秀。很高兴让事情顺利进行!我已经相应地调整了故障排除步骤,在前面的步骤中提到了防病毒软件,以防其他用户遇到同样的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-21
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多