首页 > 解决方案 > 在 com.unity3d.player 中找不到 UnityPlayerActivity 类

问题描述

我正在尝试为我的 Unity 游戏创建一个 Android 插件。我看过很多教程(其中大部分都是基于 eclipse 的过时的)并且也阅读了文档。我正在使用 Unity 2019.3.0f6。我想用 UnityPlayerActivity 扩展我在 Android Studio 项目中的主要活动

在此处输入图像描述

我不明白结尾行是什么意思“ Locate the file, and add classes.jar to the classpath Unity uses to compile the new Activity. Compile your Activity source file and package it into a JAR or AAR package, then copy it into your Project folder

我了解 PlaybackEngines/AndroidPlayer/Variations/mono 或 il2cpp/Development 或 Release/Classes/ 的 classes.jar 中不存在 UnityPlayerActivity,因此我无法导入 com.unity3d.player.UnityPlayerActivity;我只能导入 UnityPlayer 和 IUnityPlayerLifecycleEvents。我也有兴趣了解在这种情况下 UnityPlayer 类和 IUnityPlayerLifecycleEvents 是什么。

在此处输入图像描述

但是 UnityPlayerActivity.java 位于 C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\src\com\unity3d\player

如何将它添加到 Unity3d 库或 classes.jar 中。或者甚至导入它来扩展我的主要活动。我不明白我在这里做错了什么。我正在使用 Android Studio,虽然我是新手。

标签: javaandroidunity3dplugins

解决方案


别担心,制作统一的android插件一开始可能会有点混乱,如果你没有任何Android经验,那就更糟了!

一些技巧:

  • 项目目录结构应该是:(Assets/Plugins/Android重要的是,我一直在为这个愚蠢而苦苦挣扎
  • classes.jar在 AndroidStudio 项目中插入app/libs.
  • 将诸如“support-v4-24.1.1”之类的外部依赖项(如果您正在使用它)插入Android/libs

要在 AndroidStudio 上创建插件,您需要创建一个库(此步骤是从活动中创建它):

  • 在 graddle 上删除 ID 行
  • 在同一个文件上,更改.implementation.library

要重新编译插件,请执行以下操作:

  1. 重建AndroidStudio解决方案

  2. 转到AndroidStudio解决方案...app\build\outputs\aar获取.aar 文件

  3. 复制并粘贴它,将扩展名从 更改.aar.zip.rar
  4. 打开修改后的文件并提取 2 项:

    • classes.jar(这是另一个classes.jar,与您AndroidStudio项目的app/libs中存储的不同)
    • AndroidManifest.xml
  5. 将这些文件复制到 Unity 项目中Assets/Plugins/Android (请记住,项目目录结构很重要!)

您可以从我的Utility_Repo或您命名的路径下载classes.jar文件(第一个)。D:\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Development\Classes\classes.jar


推荐阅读