Android 构建错误“无法为类创建 JavaTypeInfo”:Xamarin

use*_*ser 7 c# xamarin xamarin.forms

按照本教程https://github.com/Vidyo/vidyo.io-connector-xamarin,我下载了该应用程序,没有做任何更改。

当我构建应用程序时,我收到以下错误:

严重性代码描述项目文件行抑制状态错误无法为类创建 JavaTypeInfo:Android.Support.V4.View.Accessibility.AccessibilityManagerCompat/ITouchExplorationStateChangeListenerImplementor 由于 MAX_PATH:System.IO.DirectoryNotFoundException:找不到路径的一部分“C: \Users\User\Desktop\vidyo.io-connector-xamarin-master\vidyo.io-connector-xamarin-master\VidyoConnector.Android\obj\Debug\90\android\src\mono\android\support\v4\view \accessibility\AccessibilityManagerCompat_TouchExplorationStateChangeListenerImplementor.java'。

在 System.IO.__Error.WinIOError(Int32 errorCode, String MaybeFullPath) 在 System.IO.File.InternalDelete(String path, Boolean checkHost) 在 System.IO.File.Delete(String path) 在 Xamarin.Android.Tools.Files .CopyIfStreamChanged(Stream stream, String destination) at Xamarin.Android.Tasks.Generator.CreateJavaSources(TaskLoggingHelper log, IEnumerable`1 javaTypes, String outputPath, String applicationJavaClass, String androidSdkPlatform, Boolean useSharedRuntime, Boolean generateOnCreateOverrides, Boolean hasExportyoReference) Vid

对此有什么可能的解决方法?

Ogg*_*las 11

@LawrenceWlt 是正确的,但我想添加更多信息。

是由于Maximum Path Length Limitation

在 Windows API 中(除了以下段落中讨论的一些例外情况),路径的最大长度是 MAX_PATH,定义为 260 个字符。

https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation

https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#maximum-path-length-limitation

如果您使用的是 Windows 10 版本 1607 或更高版本,您可以启用长路径:

该注册表项Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled (Type: REG_DWORD)必须存在并设置为 1。

应用程序清单还必须包含 longPathAware 元素。

<application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
        <ws2:longPathAware>true</ws2:longPathAware>
    </windowsSettings>
</application>
Run Code Online (Sandbox Code Playgroud)

https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation#enable-long-paths-in-windows-10-version-1607-and-later

我从实验移动 Blazor 绑定中收到类似的错误:

https://github.com/xamarin/MobileBlazorBindings

由于 MAX_PATH,无法生成类的 Java 类型:Android.Support.V4.View.Accessibility.AccessibilityManagerCompat/IAccessibilityStateChangeListenerImplementor:System.IO.DirectoryNotFoundException:找不到路径的一部分 'C:\Users\User\Desktop\MobileBlazorBindings -master\samples\MobileBlazorBindingsXaminals\MobileBlazorBindingsXaminals.Android\obj\Debug\90\android\src\mono\android\support\v4\view\accessibility\AccessibilityManagerCompat_AccessibilityStateChangeListenerImplementor.java'。在 System.IO.__Error.WinIOError(Int32 errorCode, String MaybeFullPath) 在 System.IO.File.InternalDelete(字符串路径,布尔 checkHost) 在 System.IO.File.Delete(字符串路径) 在 Xamarin.Android.Tools.Files .CopyIfStreamChanged(流流,字符串目标)位于 Xamarin.Android.Tasks.GenerateJavaStubs.CreateJavaSources(IEnumerable`1 javaTypes,TypeDefinitionCache 缓存)MobileBlazorBindingsXaminals.Android


小智 9

这似乎是 Windows 中长路径的问题。将项目文件夹放在根目录下,比如 C://yourproject。然后,清理您的解决方案并构建。