【发布时间】:2020-10-26 15:45:03
【问题描述】:
Visual Studio 最近在错误列表中显示两个错误:
- Xamarin.Android for Visual Studio 需要 Android SDK。请点击此处进行配置。
- 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