Features in External Dependency Manager in use: Android Resolver
Plugins SDK in use: Firebase App, Firebase Cloud Messaging
Platform you are using the Unity editor on: Windows
[REQUIRED] Please describe the issue here:
(Please list the full steps to reproduce the issue. Include device logs, Unity logs, and stack traces if available.)
When running the Android resolver, the resolver failed to copy aar files provided in the firebase packages with the following error:
Job failed with exception: System.ArgumentException: The specified path is not of a legal form (empty).
at System.IO.Path.InsecureGetFullPath (System.String path) [0x00025] in <21f453231f9b419fb92653c858b2eaf6>:0
at System.IO.Path.GetFullPath (System.String path) [0x00000] in <21f453231f9b419fb92653c858b2eaf6>:0
at System.IO.DirectoryInfo..ctor (System.String path) [0x00006] in <21f453231f9b419fb92653c858b2eaf6>:0
at (wrapper remoting-invoke-with-check) System.IO.DirectoryInfo..ctor(string)
at Google.FileUtils.CreateFolder (System.String path, Google.Logger logger) [0x00010] in /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/FileUtils.cs:646
at Google.FileUtils.CreateFolder (System.String path, Google.Logger logger) [0x0001e] in /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/FileUtils.cs:648
at Google.FileUtils.CreateFolder (System.String path, Google.Logger logger) [0x0001e] in /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/FileUtils.cs:648
at Google.FileUtils.CreateFolder (System.String path, Google.Logger logger) [0x0001e] in /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/FileUtils.cs:648
at Google.FileUtils.CreateFolder (System.String path, Google.Logger logger) [0x0001e] in /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/FileUtils.cs:648
at Google.FileUtils.CreateFolder (System.String path, Google.Logger logger) [0x0001e] in /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/FileUtils.cs:648
at Google.FileUtils.CreateFolder (System.String path, Google.Logger logger) [0x0001e] in /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/FileUtils.cs:648
at Google.FileUtils.CreateFolder (System.String path, Google.Logger logger) [0x0001e] in /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/FileUtils.cs:648
at Google.FileUtils.CreateFolder (System.String path, Google.Logger logger) [0x0001e] in /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/FileUtils.cs:648
at Google.FileUtils.CreateFolder (System.String path, Google.Logger logger) [0x0001e] in /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/FileUtils.cs:648
at Google.FileUtils.CreateFolder (System.String path, Google.Logger logger) [0x0001e] in /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/FileUtils.cs:648
at GooglePlayServices.PlayServicesResolver.CopyAssetAndLabel (System.String sourceLocation, System.String targetLocation, System.Boolean force) [0x0009b] in /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:2514
at GooglePlayServices.GradleTemplateResolver.CopySrcAars (System.Collections.Generic.ICollection`1[T] dependencies) [0x000be] in /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/GradleTemplateResolver.cs:209
at GooglePlayServices.GradleTemplateResolver.InjectDependencies (System.Collections.Generic.ICollection`1[T] dependencies) [0x00140] in /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/GradleTemplateResolver.cs:548
at GooglePlayServices.PlayServicesResolver+<>c__DisplayClass115_0.<ResolveUnsafe>b__3 () [0x0000c] in /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:2078
at Google.RunOnMainThread.ExecuteNext () [0x00047] in /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/RunOnMainThread.cs:486
UnityEngine.Debug:LogError (object)
Google.RunOnMainThread:ExecuteNext () (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/RunOnMainThread.cs:488)
Google.RunOnMainThread/<>c:<ExecuteAllUnnested>b__28_0 () (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/RunOnMainThread.cs:536)
Google.RunOnMainThread:RunAction (System.Action) (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/RunOnMainThread.cs:343)
Google.RunOnMainThread:ExecuteAllUnnested (bool) (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/RunOnMainThread.cs:530)
Google.RunOnMainThread:Run (System.Action,bool) (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/VersionHandlerImpl/src/RunOnMainThread.cs:472)
GooglePlayServices.PlayServicesResolver:ResolveUnsafe (System.Action`1<bool>,bool,bool) (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:2076)
GooglePlayServices.PlayServicesResolver:ResolveUnsafeAfterPromptCheck (System.Action`1<bool>,bool,bool,bool) (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:1944)
GooglePlayServices.PlayServicesResolver/<>c__DisplayClass113_0:<ResolveUnsafeAfterJetifierCheck>b__0 (bool) (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:1853)
GooglePlayServices.PlayServicesResolver/<>c__DisplayClass144_0:<CanEnableJetifierOrPromptUser>b__1 (GooglePlayServices.PlayServicesResolver/ApiLevelJetifierResult) (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:2825)
GooglePlayServices.PlayServicesResolver:CheckApiLevelForJetifier (bool,string,System.Action`1<GooglePlayServices.PlayServicesResolver/ApiLevelJetifierResult>) (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:2789)
GooglePlayServices.PlayServicesResolver/<>c__DisplayClass144_0:<CanEnableJetifierOrPromptUser>b__0 (bool) (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:2810)
GooglePlayServices.PlayServicesResolver:CheckGradleVersionForJetifier (bool,string,System.Action`1<bool>) (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:2717)
GooglePlayServices.PlayServicesResolver:CanEnableJetifierOrPromptUser (string,System.Action`1<bool>) (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:2808)
GooglePlayServices.PlayServicesResolver:ResolveUnsafeAfterJetifierCheck (System.Action`1<bool>,bool,bool,bool) (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:1850)
GooglePlayServices.PlayServicesResolver:ResolveUnsafeAfterMainTemplateCheck (System.Action`1<bool>,bool,bool,bool) (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:1796)
GooglePlayServices.PlayServicesResolver/<>c__DisplayClass110_0:<ScheduleResolve>b__1 () (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:1751)
GooglePlayServices.PlayServicesResolver:ExecuteNextResolveJob () (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:1598)
GooglePlayServices.PlayServicesResolver:ScheduleResolve (bool,bool,System.Action`1<bool>,bool) (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:1764)
GooglePlayServices.PlayServicesResolver:ExecuteMenuResolve (bool) (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:2143)
GooglePlayServices.PlayServicesResolver:MenuForceResolve () (at /Users/amaurice/Documents/GitHub/unity-jar-resolver/source/AndroidResolver/src/PlayServicesResolver.cs:2167)
Upon further investigation, I found that the cause was actually due to path resolving in FileUtils.cs
The following regex no longer match for Unity 6:
/// <summary>
/// Regex to match packages folder like "Library/PackageCache/com.company.pkg"
/// </summary>
private static Regex PACKAGES_PHYSICAL_PATH_REGEX =
new Regex(@"^(Library[/\\]PackageCache[/\\])([^/\\]+)(@[^/\\]+)[/\\](.*)?$");
This is because Unity 6 has changed the folder naming by removing the @version postfix:
Understanding that, moving the firebase packages to the local Packages/ folder proved to "resolve" this issue as that will avoid matching the package path via this regex — it's not an ideal solution though.
Adding on top of this, there is also another less problematic deprecated warning with the resolver's generated gradle settings in mainTemplate.gradle:
With the above, Unity will complain that packagingOptions is deprecated and changes it to packaging if you let it auto fix when trying to build an Android build.
[REQUIRED] Please fill in the following fields:
[REQUIRED] Please describe the issue here:
(Please list the full steps to reproduce the issue. Include device logs, Unity logs, and stack traces if available.)
When running the Android resolver, the resolver failed to copy aar files provided in the firebase packages with the following error:
Upon further investigation, I found that the cause was actually due to path resolving in
FileUtils.cs
The following regex no longer match for Unity 6:
This is because Unity 6 has changed the folder naming by removing the![image](https://github.com/googlesamples/unity-jar-resolver/assets/84936201/85778188-c94a-484a-8bf1-5a641b988156)
@version
postfix:Understanding that, moving the firebase packages to the local
Packages/
folder proved to "resolve" this issue as that will avoid matching the package path via this regex — it's not an ideal solution though.Adding on top of this, there is also another less problematic deprecated warning with the resolver's generated gradle settings in
mainTemplate.gradle
:With the above, Unity will complain that
packagingOptions
is deprecated and changes it topackaging
if you let it auto fix when trying to build an Android build.Please answer the following, if applicable:
What's the issue repro rate? 100%
What happened? How can we make the problem occur?