XAML in Xamarin.Forms 基礎篇 電子書

特別說明

2017/03/30

Xamarin 的專案,因為路徑過長所造成 Xamarin 異常問題

當您建立一個 Xamarin.Forms 的專案,按照之前的作法,都沒有遇到問題,可是,對於剛剛建立的專案,當要建置的時候,卻得到底下奇怪的錯誤訊息。
明明還沒有做任何工作,只是建立專案,建置,卻告知 styles.xml 檔案有問題,可是,這個檔案卻是由 Visual Studio 專案樣板產生的,您也沒有做任何修改。
嚴重性 程式碼 說明  專案  檔案  行   隱藏項目狀態
錯誤      No resource found that matches the given name: attr 'colorAccent'.  XRemoteNotificationDroid.Droid  D:\Vulcan\GitBook\Temp\XRemoteNotificationDroid\XRemoteNotificationDroid\XRemoteNotificationDroid.Droid\Resources\values\styles.xml 2   
錯誤      Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.NoActionBar'.    XRemoteNotificationDroid.Droid  D:\Vulcan\GitBook\Temp\XRemoteNotificationDroid\XRemoteNotificationDroid\XRemoteNotificationDroid.Droid\Resources\values\styles.xml 2   
錯誤      No resource found that matches the given name: attr 'colorPrimary'. XRemoteNotificationDroid.Droid  D:\Vulcan\GitBook\Temp\XRemoteNotificationDroid\XRemoteNotificationDroid\XRemoteNotificationDroid.Droid\Resources\values\styles.xml 2   
錯誤      No resource found that matches the given name: attr 'colorPrimaryDark'. XRemoteNotificationDroid.Droid  D:\Vulcan\GitBook\Temp\XRemoteNotificationDroid\XRemoteNotificationDroid\XRemoteNotificationDroid.Droid\Resources\values\styles.xml 2   
此時,若您清除 Android 專案,並且選擇建置,就會看到底下錯誤訊息。
沒錯,就是這個 完整的檔名必須少於 260 個字元,並且目錄名稱必須少於 248 個字元。
因此,將這個專案搬移到距離跟目錄比較近的地方或者重新建立一個專案,使用比較短的方案名稱吧。
嚴重性 程式碼 說明  專案  檔案  行   隱藏項目狀態
錯誤      "ResolveLibraryProjectImports" 工作發生未預期的失敗。
System.IO.PathTooLongException: 指定的路徑、檔名,或是兩者都太長。完整的檔名必須少於 260 個字元,並且目錄名稱必須少於 248 個字元。
   於 System.IO.PathHelper.GetFullPathName()
   於 System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   於 System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   於 System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)
   於 System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   於 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   於 Xamarin.Tools.Zip.ZipEntry.DoExtract(IntPtr zipFile, String destinationPath, FileMode outputFileMode, EntryExtractEventArgs args)
   於 Xamarin.Tools.Zip.ZipEntry.Extract(String destinationDir, String destinationFileName, FileMode outputFileMode)
   於 Xamarin.Android.Tools.Files.ExtractAll(ZipArchive zip, String destination, Action`2 progressCallback)
   於 Xamarin.Android.Tasks.ResolveLibraryProjectImports.Extract(DirectoryAssemblyResolver res, ICollection`1 jars, ICollection`1 resolvedResourceDirectories, ICollection`1 resolvedAssetDirectories, ICollection`1 resolvedEnvironments)
   於 Xamarin.Android.Tasks.ResolveLibraryProjectImports.Execute()
   於 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   於 Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()  XRemoteNotificationDroid.Droid          

沒有留言:

張貼留言