在新建一個 Xamarin 應用,編譯時提示了 linking references 和一些詭異的文件無法訪問,原因是文件路徑問題和 NuGet 還原問題
如果創建的 Xamarin 項目所在的文件路徑比較深,同時包含中文等字符時,在編譯時可以會詭異失敗
oid\Xamarin.Android.Aapt2.targets(155,3): error APT2062: failed linking references.
或者
error APT0000: resource integer/google_play_services_version (aka com.softoursistemas.rutesc.droid:integer/google_play_services_version) not found
也有比較明確的提示
Failed to create JavaTypeInfo for class: Android.Support.V13.View.Inputmethod.InputConnectionCompat/IOnCommitContentListenerImplementor due to MAX_PATH: System.IO.DirectoryNotFoundException: 未能找到路徑“g:\lindexi\ChuwheaweaharfelkalBelqearjurnawnere\ChuwheaweaharfelkalBelqearjurnawnere\ChuwheaweaharfelkalBelqearjurnawnere.Android\obj\Debug\90\android\src\mono\android\support\v13\view\inputmethod\InputConnectionCompat_OnCommitContentListenerImplementor.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)
在 Xamarin.Android.Tasks.Generator.CreateJavaSources(TaskLoggingHelper log, IEnumerable`1 javaTypes, String outputPath, String applicationJavaClass, String androidSdkPlatform, Boolean useSharedRuntime, Boolean generateOnCreateOverrides, Boolean hasExportReference) ChuwheaweaharfelkalBelqearjurnawnere.Android
也有很詭異的提示
Android\obj\Debug\90\lp\39\jl\res : error APT2097: failed to open directory: 緋葷粺
有明確的提示的可以看到,其實 Xamarin 的設計有點坑,就是路徑太長了,加上了我的項目命名,在 Windows 下的路徑就超過了 260 字符限制,此時就編譯不通過
解決方法是嘗試將項目移動到磁盤的第二級文件夾,然後使用刪除所有的 bin
和 obj
文件夾,此時就可以解決這幾個詭異的坑
我搭建了自己的博客 https://blog.lindexi.com/ 歡迎大家訪問,裏面有很多新的博客。只有在我看到博客寫成熟之後纔會放在csdn或博客園,但是一旦發佈了就不再更新
如果在博客看到有任何不懂的,歡迎交流,我搭建了 dotnet 職業技術學院 歡迎大家加入
如有不方便在博客評論的問題,可以加我 QQ 2844808902 交流
本作品採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。歡迎轉載、使用、重新發布,但務必保留文章署名林德熙(包含鏈接:http://blog.csdn.net/lindexi_gd ),不得用於商業目的,基於本文修改後的作品務必以相同的許可發佈。如有任何疑問,請與我聯繫。