首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓构建错误“无法为类创建JavaTypeInfo”:Xamarin

安卓构建错误“无法为类创建JavaTypeInfo”:Xamarin
EN

Stack Overflow用户
提问于 2020-03-05 14:49:06
回答 4查看 5.5K关注 0票数 8

遵循本教程https://github.com/Vidyo/vidyo.io-connector-xamarin我在没有做任何修改的情况下下载了这个应用程序。

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

严重程度代码说明项目文件行抑制状态错误无法为类Android.Support.V4.View.Accessibility.AccessibilityManagerCompat/ITouchExplorationStateChangeListenerImplementor创建JavaTypeInfo,原因是最大值_路径:'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 :找不到路径path的一部分System.IO.DirectoryNotFoundException

_TouchExplorationStateChangeListenerImplementor.java'.

在System.IO__Xamarin.Android.Tools.Files.CopyIfStreamChanged(Stream日志,IEnumerable`1 javaTypes,String outputPath,String applicationJavaClass,String androidSdkPlatform,Boolean useSharedRuntime,Boolean generateOnCreateOverrides,Boolean hasExportReference)的Boolean (字符串路径,Boolean System.IO.File.Delete)的Boolean(字符串路径,Boolean useSharedRuntime)的Boolean(字符串路径,Boolean checkHost) at Boolean log,ienumerable`1 javaTypes,String outputPath,String applicationJavaClass)的Boolean(字符串路径,Boolean System.IO.File.Delete)

可能的修复方法是什么?

EN

回答 4

Stack Overflow用户

发布于 2020-09-23 21:39:10

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

票数 11
EN

Stack Overflow用户

发布于 2021-01-11 07:08:58

@LawrenceWlt是正确的,但我想补充一些信息。

是由于Maximum Path Length Limitation

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

https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitationhttps://docs.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元素。

代码语言:js
复制
true

https://docs.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由于最大值,无法为类Android.Support.V4.View.Accessibility.AccessibilityManagerCompat/IAccessibilityStateChangeListenerImplementor生成Java类型

_路径:'C:\Users\User\Desktop\MobileBlazorBindings-master\samples\MobileBlazorBindingsXaminals\MobileBlazorBindingsXaminals.Android\obj\Debug\90\android\src\mono\android\support\v4\view\accessibility\AccessibilityManagerCompat :找不到路径path的一部分System.IO.DirectoryNotFoundException

_AccessibilityStateChangeListenerImplementor.java'.在System.IO。__Error.WinIOError(Int32 errorCode,String maybeFullPath) at System.IO.File.InternalDelete(String path,Boolean checkHost) at System.IO.File.Delete(String path) at Xamarin.Android.Tools.Files.CopyIfStreamChanged(Stream stream,String destination) at Xamarin.Android.Tasks.GenerateJavaStubs.CreateJavaSources(IEnumerable`1 javaTypes,TypeDefinitionCache缓存) MobileBlazorBindingsXaminals.Android

票数 5
EN

Stack Overflow用户

发布于 2021-02-20 02:16:58

还有另一个尚未被提及的解决方案:创建一个目录连接并将其指向您的解决方案目录。将连接放在根级别,然后从那里运行解决方案。

此方法将使您能够解决最大_无需移动项目或升级到Windows 10即可解决路径问题。

例如,假设您将所有代码存储在C:\dev中,所有repos存储在C:\dev\repos中,所有Git repos存储在C:\dev\ repos \git中,所有Xamarin Git repos存储在C:\dev\repos\git\xamarin中,所有为最大客户构建的移动应用程序都存储在C:\dev\repos\git\xamarin\isis中您的最新项目可以在C:\dev\repos\git\xamarin\isis\satellite-tracker\src,中找到,但您无法将其构建,因为路径太长。

因此,我们创建了一个新目录,C:\J,它将保存此目录以及我们在其他项目上为此变通方法创建的任何其他连接。然后以管理员身份打开命令提示符,导航到C:\J,然后输入以下命令:

代码语言:js
复制
mklink /J SatTrack C:\dev\repos\git\xamarin\isis\satellite-tracker\src

现在您可以从C:\J\SatTrack访问您的解决方案文件。如果您从那里打开它,Visual Studio将使用该路径而不是较长的路径,并且在清理/重建之后应该可以正常工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60539637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档