Android: 未找到 class "com.google.unity.GoogleUnityActivity"

Android: Didn't find class "com.google.unity.GoogleUnityActivity"

本期分为三个部分:

  1. 新的 Unity GoogleVR 包出现了,所以我决定更新它。删除旧包并导入新包后,我得到了删除使用旧 api 的 4 个文件的建议。

  2. 如果我删除它们 Android 应用程序在移动设备上崩溃 phone 并出现错误 Didn't find class "com.google.unity.GoogleUnityActivity"。注意:它建议删除的文件之一是 /Assets/Plugins/Android/unitygvractivity.aar,我认为它有一些重要意义。

  3. 如果我不删除它,Unity无法构建包:"unable to convert classes into dex format"

我的问题:如何包含 GoogleUnityActivity class 让 Unity 不抱怨。为什么 Unity 会删除这个 class?

我正在使用:

好吧,既然新的 "Google VR SDK for Unity v1.0" 版本标志着 Unity 中原生 Daydream 集成的首次亮相,那么您不需要手动添加“ unitygvractivity.aar" 到 Android 用于构建统一插件的库。

  • 使用 extends UnityPlayerActivity 代替您的原始脚本。
  • 然后回到Unity,选择在"Virtual Reality SDKs"中添加"Cardboard"。
  • 检查您的 AndroidManifest.xml,看看“android:name="CompanyName.ProductName.xxxActivity"”和“user-permission”是否设置正确。

它应该可以解决您的问题。

找到原因了!

我更新了 GoogleVR 资产文件夹后,我忘记了还有一个叫做插件。该文件夹包含 manifest.xml 文件,这些文件定义了要使用的 class。完全重新导入资产后,问题自行解决!

我遇到了同样的问题:Android 应用程序在移动设备上启动后崩溃,错误为 Didn't find class "com.google.unity.GoogleUnityActivity"

我的解决方案是删除Unity中的"Assets/Plugins"文件夹,然后重新导入Google VR包。出现重新导入选项屏幕时,确保选中 "Plugins" 文件夹,以便可以重新导入已删除的 "Assets/Plugins" 文件夹。

重新导入在 Assets/Plugins/Android/ 中重新创建了不正确的 AndroidManifest.xml 文件,并解决了我的问题。