3

我尝试将 GoogleMobileAds sdk 导入统一。当我导入 PlayServicesResolver 包时,我在控制台上收到类似“ArgumentException:未找到请求的值“X86”的错误。” 我想不通为什么?

ArgumentException:未找到请求的值“X86”。System.Enum+EnumResult.SetFailure (System.Enum+ParseFailureKind failure, System.String failureMessageID, System.Object failureMessageFormatArgument) (at <23c160f925be47d7a4fd083a3a62c920>:0) System.Enum.TryParseEnum (System.Type enumType, System.String value, System .Boolean ignoreCase, System.Enum+EnumResult& parseResult) (at <23c160f925be47d7a4fd083a3a62c920>:0) System.Enum.Parse (System.Type enumType, System.String value, System.Boolean ignoreCase) (at <23c160f925be47d7a4fd083a3a62c920>:0) Enum.Parse (System.Type enumType, System.String 值) (at <23c160f925be47d7a4fd083a3a62c920>:0) GooglePlayServices.AndroidAbis.EnumValueStringToULong (System.Type enumType, System.1[T].Poll (System.Func1[TResult] getCurrentValue, GooglePlayServices.PlayServicesResolver+PropertyPoller`1+Changed[T] 已更改)(在 /Users/smiles/dev/src/unity-jar-resolver/source/PlayServicesResolver/src/PlayServicesResolver.cs:278)GooglePlayServices .PlayServicesResolver.PollAndroidAbis () (在 /Users/smiles/dev/src/unity-jar-resolver/source/PlayServicesResolver/src/PlayServicesResolver.cs:1201) UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (在 C:/buildslave/unity /build/Editor/Mono/EditorApplication.cs:303)

4

6 回答 6

17

如 GitHub googlesamples/unity-jar-resolver 中所述,您可以在 Unity 2019.3 中解决此问题。您只需要比 v1.2.115 更新版本的 Play Services Resolver。

  1. 从 GitHub googlesamples/unity-jar-resolver下载发布档案。请注意下面的注释。
  2. 从存档中提取文件,然后转到其根目录
  3. 按照 README.md 中的从源代码构建中的描述运行构建,您将在 ./build/plugin.unitypackage 中获得一个统一包文件。如果您在 Unity 中缺少某些东西,您可能需要在 Unity 中安装模块。(例如 iOS 构建支持)
  4. 在 Unity 的项目窗口中,删除/Assets/PlayServicesResolver文件夹
  5. 在 Unity 上,从您在上面第 3 步构建的包文件中导入所有文件

注意:在我的环境中,由于错误 CS0619,v1.2.115 构建失败,所以我选择了 v1.2.124。使用此版本,构建成功并且到目前为止与 Unity 2019.3.0a12 配合良好。

于 2019-08-23T20:04:34.280 回答
3

我一直有同样的问题。我已经从 GitHub 而不是 Unity 更新了 PlayServicesResolver,它似乎已经解决了这个问题:

https://github.com/googlesamples/unity-jar-resolver

于 2019-06-05T12:28:48.570 回答
3

对我有用的简化版本,无需重建。

与 Unity 2019.3f6 版本一起使用

  1. 从 GitHub googlesamples/unity-jar-resolver 下载发布档案。
  2. 从存档中提取文件
  3. 从 Unity Assets > Import Package 导入下载文件中的 play-services-resolver-1...。

这会自动删除不需要的目录等。

于 2020-01-31T15:36:40.903 回答
3

我想我发现了为什么我会得到这个例外。在 Unity3d 2019.3.0a3 版本中,Project Settings-> Player-> Target Architectures 中没有 x86 选项。但是在旧版本的 Unity3d 中,有。也许导入的 PlayServicesResolver sdk 也会搜索这个选项,所以会抛出 ArgumentException。

于 2019-05-26T18:55:22.810 回答
1

对我来说,删除 PlayServicesResolver 目录有效。

于 2020-05-18T07:25:18.610 回答
0

这个版本好像有问题。

我在 Mac 上运行 2019.3.0a3 并且有同样的错误......遗憾的是我在导入我的项目之前没有看到它并且有点丢失了所有东西,因为我无法正确降级我的项目。

我的解决方案不是最好的,但这是我所做的:

  • 下载了最新的稳定版本 2019.1.4f1
  • 使用此构建创建了一个新项目
  • 从我以前的项目中复制所有文件并将其粘贴到我的新项目文件夹中(2019.3.0a3 中的导出包无法正常工作......太棒了!)
  • 重新创建了我所有的场景,因为粘贴文件不足以复制它们

Aaaa 就是这样,努力工作,但我认为应该这样做(我现在正在这样做,我希望它有效)。

另外,由于这不是最好的解决方案,我想把它写成评论而不是答案,但我在这里的声誉还很低。

Cya,祝你的项目好运,如果你有比我更好的解决方案,请更新我们!

于 2019-05-26T13:50:12.920 回答