如何解决:在 VS 2015 中使用 Xamarin 初始化 Android 设计器时发生意外错误
Posted
技术标签:
【中文标题】如何解决:在 VS 2015 中使用 Xamarin 初始化 Android 设计器时发生意外错误【英文标题】:How to resolve : unexpected error occured Initializing Android Designer" in VS 2015 with Xamarin 【发布时间】:2017-01-25 15:51:18 【问题描述】:使用 Xamarin 和 VS 2015 Pro 启动新 PC 我收到以下错误:
尝试初始化 android Designer 时发生意外错误。 请验证 Android SDK 路径和 Java 开发工具包路径 在工具-> 选项-> Xamarin-> Android 设置菜单上。请查看日志 了解更多详情。
我已验证 SDK 已正确安装。 VS 没有生成任何类型的活动日志,所以我相信日志必须位于其他地方。任何人都知道我在哪里可以找到此日志以了解有关问题的更多信息?
【问题讨论】:
【参考方案1】:我遇到了完全相同的问题(在新 PC 上,安装了新的 Visual Studio),我 99.9% 确定答案是如何应用更新。或者,更重要的是,当您认为它们被应用时,它们是如何没有被应用的。
转到工具 |选项 | Xamarin |其他,在 Xamarin for Visual Studio Updates 下,立即检查 STABLE 更新。确保您至少运行 4.2.0.680。当更新程序正在运行时,您必须在后台关闭 Visual Studio——它会警告您。 从 Visual Studio 卸载和安装跨平台开发工具并没有为我应用此更新。我不得不强迫这个问题。
现在,如前所述,转到工具、Android SDK 管理器。我注意到我的“Android SDK 工具”和“跨平台工具”已经过时并且有可用的更新。我接受并将更新应用到版本 24.4.1。 请耐心等待,这就是棘手的地方——它仍然没有用。
返回工具,Android SDK 管理器。我立即注意到,即使我刚刚应用了“Android SDK 工具”的最新更新 (24.4.1),现在还有一个新版本 (25.2.2) 以及其他 17 个更新可用。我都接受了。
宾果游戏。我曾经有烦人的错误消息和一个空的设计表面和一个带有悲伤“无可用控件”消息的空工具箱,现在我有附加的屏幕快照 - 一个设计表面,我可以在其中看到我的 .axml 的可视化表示,以及一个工具箱,我可以从中拖放控件,它们实际上会显示在我的三星平板电脑上。
抱歉,太冗长了。我在这个问题上浪费了几个小时,并认为其他人可能会欣赏另一个可行的解决方案。
【讨论】:
呃。瘸。 Xamarin 框架对此根本不透明。 - 我不知道在一切都说完并更新之后,我不得不启动一个外部工具并更新更多东西。 -- 谢谢,顺便说一句,这真的很有帮助。 顺便说一句,您如何在这样的设计器中查看 ContentPage 的 xaml? -- 这似乎不是最新的“Blank Xaml App (Xamarin.Forms.Portable)”项目模板的行为。 我没有使用 Xamarin Forms 模板 BrainSlugs83,所以我不确定那里会发生什么,但上面的设计者行为是我想要的——并且不得不努力获得——使用安卓模板。我对表单模板感到沮丧,因为它们包含无法构建的 Microsoft 设备(以及许多其他绒毛)项目。只要我负担得起设置 Apple 开发环境的费用,我就会探索 Forms,但我现在只针对 Android ——顺便说一句,我必须承认我对 Xamarin 很陌生 完美答案 + 如果已经打开或关闭防病毒程序,您可能必须关闭 Visual Studio,因为当它们被积极使用或打开时,它可能不会复制某些文件夹。 男人。我的 Android SDK 管理器就是打不开。我不得不通过 tools\android.bat 打开它。有什么办法可以解决这个问题,以便我可以在我的 VS 2015 上打开它?此外,安装 xamarin 是一件令人头疼的事情,这是我第二天试图做出一个无错误/警告的项目。正如您在此处提到的,目前正在更新它,希望它开始正常工作。【参考方案2】:我遇到了类似的问题,如下所述。 这是一个对我有用的解决方案:
1) 删除下面屏幕截图中出现的一个包。 注意事项:在此阶段 VS 2015 将 Android SDK 管理器按钮显示为灰色,即使在重新启动后也是如此。
2) 下载installer_r24.4.1-windows.exe for windows https://developer.android.com/studio/index.html
3) 在 VS 之外启动 Android SDK Manager 并安装建议的 19 个包。这次我可以完成安装了。
4) 启动 VS 2015 并创建 Xamarin Android 项目。启动 Main.axml 将在 android 项目上正确启动设计器。
我遇到的错误
我在全新安装 Win10 + Full Visual Studio Community 2015 Update 3 + .Net Core + Azure SDK 和 Xamarin 时遇到了同样的问题。创建一个新项目 Xamarin Native (ios + Androird) 显示与 MikeJ 提到的相同消息。另外,在debug F5中运行让设计器有一个新的弹窗
问题似乎也出现在这里 https://bugzilla.xamarin.com/show_bug.cgi?id=44374 和这里 https://forums.xamarin.com/discussion/77669/how-do-i-fix-this-error-the-installed-android-sdk-is-too-old-version-25-1-3-or-newer-is-required .
打开 Android 管理器不会将版本 25 显示为选项,而是显示此选项
但是,我们无法安装(即使接受许可证也是灰色按钮)
更新 Xamarin 也不起作用How to update Xamarin for Android within Visual Studio Community 2015
一些指导有助于了解发生了什么。
【讨论】:
【参考方案3】:我遇到了同样的问题(在使用 Xamarin 启动新 PC 时),几天后我解决了这个问题。
我将 sdk 目录从“C:\Program Files (x86)\Android\android-sdk”移动到“C:\android-sdk”。然后我打开了sdk manager并进行了更新。就是这样。
我认为问题在于路径,它有空间:)
【讨论】:
【参考方案4】:我能够通过打开 Android SDK 管理器并将所有工具更新到最新版本来解决此问题。
【讨论】:
【参考方案5】:如果您已经在计算机中使用 Android Studio,那么这可能会解决您的问题。 检查 SDK 是否已在其他位置可用。这对我有用。检查 SDK 路径 - 打开 Android Studio -> 单击 SDK 管理器图标。检查 Android SDK 位置。复制该路径。
在 Visual Studio 中——打开工具->选项->Xamarin->Android 设置菜单并替换新的 SDK 路径。它会自动要求下载更新。安装所有包就完成了!
【讨论】:
【参考方案6】:在您解决所有这些麻烦之前(我自己经历了许多复杂的步骤几个小时)请尝试以管理员身份运行您的 VisualStudio,看看会发生什么!
它为我解决了上述问题(然后是一些问题)。我使用了全新的 WIN 10 和 VS2015 社区安装,我必须将一些权限设置为严格。
我还了解到更新我的 NuGet 包:Xamarin.Forms (v.2.3.3.168) 解决了与以下相关的错误:
System.MissingMethodException: Method Android.Support.V4.Widget.DrawerLayout.AddDrawerListener not found.
但这是另一个问题。
【讨论】:
【参考方案7】:将这两个引用添加到 Droid.csproj 和 packages.config 为我解决了这个问题:
<package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Android.Support.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
【讨论】:
【参考方案8】:另一个需要注意的问题是,您需要在 Xamarin 中引用 Java Development Kit 8,而不是 JDK 7。您可以将其设置为 Tools > Options > Xamarin > Android。
【讨论】:
以上是关于如何解决:在 VS 2015 中使用 Xamarin 初始化 Android 设计器时发生意外错误的主要内容,如果未能解决你的问题,请参考以下文章
如何在 VS2015 中按名称从解决方案资源管理器中隐藏文件?
如何使用 MSBuild 构建具有 VS2010 配置的 VS2015 解决方案?