【问题标题】:Visual Studio 2019 not recognizing Jdk and Android SDKVisual Studio 2019 无法识别 Jdk 和 Android SDK
【发布时间】:2020-10-26 15:45:03
【问题描述】:

Visual Studio 最近在错误列表中显示两个错误:

  1. Xamarin.Android for Visual Studio 需要 Android SDK。请点击此处进行配置。
  2. Xamarin.Android for Visual Studio 需要 Java 开发工具包 (JDK)。请点击此处进行配置。

单击第一个会打开 Android Sdk 管理器,上面显示“Sdk 需要修复”,但单击“修复”时没有任何反应。 sdkmanager 日志说:

[2020-10-26 16:29:41.6] DEBUG: [monodroid] ValidateAndroidSdkLocation: ``, result=False
[2020-10-26 16:29:41.6] INFO: [monodroid] Looking for Android SDK...
[2020-10-26 16:29:41.6] DEBUG: [monodroid] ValidateAndroidSdkLocation: `C:\Program Files (x86)\Android\android-sdk`, result=False
[2020-10-26 16:29:41.6] DEBUG: [monodroid] ValidateAndroidNdkLocation: ``, result=False
[2020-10-26 16:29:41.6] INFO: [monodroid] Looking for Android NDK...
[2020-10-26 16:29:41.6] INFO: [monodroid] Looking for Android SDK...
[2020-10-26 16:29:41.6] DEBUG: [monodroid] ValidateAndroidSdkLocation: `C:\Program Files (x86)\Android\android-sdk`, result=False
[2020-10-26 16:29:41.6] DEBUG: [monodroid] ValidateJavaSdkLocation: `C:\Program Files\Android\Jdk\microsoft_dist_openjdk_1.8.0.25`, result=True
[2020-10-26 16:29:41.6] ERROR: [monodroid] Error finding Android/Java SDKs
System.InvalidOperationException: Could not determine Android SDK location. Please provide `androidSdkPath`.
   at Xamarin.Android.Tools.AndroidSdkInfo..ctor(Action`2 logger, String androidSdkPath, String androidNdkPath, String javaSdkPath) in d:\a\1\s\external\androidtools\external\xamarin-android-tools\src\Xamarin.Android.Tools.AndroidSdk\AndroidSdkInfo.cs:line 22
   at Xamarin.AndroidTools.AndroidSdk.Refresh(String androidSdkPath, String androidNdkPath, String javaSdkPath)
[2020-10-26 16:29:41.7] INFO: Trying to get SDK path from Windows Registry
[2020-10-26 16:29:41.9] INFO: No Android SDK instance matching the 'C:\Program Files (x86)\Android\android-sdk' path

这已经是一件奇怪的事情了,因为它说 ValidateJavaSdkLocation result=True,但是当我点击第二个错误时:

我重新安装了 Visual Studio 两次,第二次甚至运行带有 -f 标志的 InstallCleanup.exe 以清除任何遗留的垃圾。

android-sdk 文件夹和 jdk microsoft_dist_openjdk_1.8.0.25 都存在并包含通常的文件和文件夹。我唯一能想象的是,visual studio/mono/whatever 正在寻找旧版本的 jdk 和 android sdk,但我不知道为什么。

其他日志:

Ide.log 包含:

[2020-10-26 16:28:57.9] ERROR: : Couldn't update deploy enabled state
System.AggregateException: One or more errors occurred. ---> System.Net.Sockets.SocketException: Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte 127.0.0.1:5037

翻译为“在端口 5037 上的连接被拒绝”

版本:

VS 2019 Enterprise    16.7.6
Xamarin               16.7.000.456 (d16-7-6@f8d55b6)
Xamarin.Android SDK   11.0.2.0 (d16-7/025fde9)
Xamarin.Android Reference Assemblies and MSBuild support.
    Mono: 83105ba
    Java.Interop: xamarin/java.interop/d16-7@1f3388a
    ProGuard: Guardsquare/proguard/proguard6.2.2@ebe9000
    SQLite: xamarin/sqlite/3.32.1@1a3276b
    Xamarin.Android Tools: xamarin/xamarin-android-tools/d16-7@017078f

【问题讨论】:

  • clicking on "Repair" nothing happens,只是没有任何回应?也许你需要等待一段时间。您是否尝试在visual-studio 安装程序中修复visual-studio?
  • 我尝试删除 sdk 管理器中的所有组件。然后修复给了我一个屏幕来再次安装它们。但是完成后,它仍然显示“sdk is broken”消息,但点击修复并没有做任何事情。我没有尝试在安装程序中修复,但我确实卸载并重新安装。
  • 尝试在安装程序中修复,如果问题仍然存在,请在visual-studio内向developercommunity报告问题。
  • 所以我一直在尝试,monodroid 终于说出了问题所在:MonoDroidLog: Information: 0: [I:sdk]: Framework path: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\common7\ide\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v1.0 它使用单声道的 v1 而不是该目录中最新的 v11。知道我可以在哪里设置它应该使用的版本吗?这是在某种注册表项中吗?
  • 也许重新安装 Xamarin.Android nuget 包?

标签: visual-studio xamarin xamarin.android


【解决方案1】:

您在哪里看到这些设置?确保检查 Xamarin.Android 设置:

请问C:\Program Files (x86)\Android\android-sdk的内容是什么?它是空的吗,也许它包含了部分安装的 Android SDK?

其中至少应该有一个build-toolsplatformsplatform-toolstools 文件夹。

您是否定义了环境变量ANDROID_SDK_ROOTJAVA_SDK呢?

【讨论】:

  • 在 Xamarin.Android 设置中,它具有这些确切的路径。只有在他们旁边有红十字。文件夹包含您提到的所有子文件夹。可能是因为 AndroidSdkManager 一直要求修复,所以部分安装了 Android SDK,但修复什么也没做。正如您在第一个日志中看到的那样,它正在寻找正确的位置来验证 Android 和 Java Sdk,只是对此不满意。
猜你喜欢
  • 2020-03-22
  • 2020-11-27
  • 1970-01-01
  • 1970-01-01
  • 2018-08-19
  • 1970-01-01
  • 1970-01-01
  • 2021-03-26
  • 1970-01-01
相关资源
最近更新 更多