将 Unity3D 项目导出并运行到 Android Studio

Posted

技术标签:

【中文标题】将 Unity3D 项目导出并运行到 Android Studio【英文标题】:Exporting and running Unity3D project to Android Studio 【发布时间】:2016-12-23 04:14:07 【问题描述】:

我想在 Unity 应用程序在 android 手机上运行时从它获取日志。为此,我必须从 Unity3D 导出​​ Android 项目并使用 Android Studio 运行它。我正在执行以下步骤:

    通过从播放器设置中选择 Google Android Project 选项从 Unity3D 导出​​项目。 打开 Android Studio 并从位置驱动器导入自动生成的项目。 选择构建 -> 制作项目。 选择运行 -> 运行“ModuleName”。

我在 Gradle 控制台中遇到以下错误:

FAILURE:构建失败并出现异常。

出了什么问题:任务 ':'ModuleName':transformClassesWithDexForDebug' 执行失败。 java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : 不支持的 major.minor 版本 52.0 在 java.lang.ClassLoader.defineClass1(本机方法)在 java.lang.ClassLoader.defineClass(ClassLoader.java:800) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:71) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:361) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:425) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:358) 在 sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) 线程“main”中的异常

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' 完成 非零退出值 1

尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。

构建失败

总时间:0.788 秒

java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : 不支持的 major.minor 版本 52.0 在 java.lang.ClassLoader.defineClass1(本机方法)在 java.lang.ClassLoader.defineClass(ClassLoader.java:800) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:71) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:361) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:425) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:358) 在 sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) 线程“main”中的异常

我很久以前就一直在使用 Eclipse,但以前从未遇到过这种情况。谁能指导我如何在 Android Studio 中成功运行 Unity-Android 项目?

【问题讨论】:

【参考方案1】:

将 Unity3D 项目导出并运行到 Android Studio 并不难。确保您拥有最新版本的 Unity(5.4)Android Studio(2.1.3)。此步骤是使用上述版本进行的。

导出到 Android Studio

1.创建一个根文件夹来存放导出的文件夹和文件。在这种情况下,我们称之为AndroidTestProject,完整的目录将是C:/AndroidTestProject

2.导出到C:/AndroidTestProject

A.文件->构建设置...

B。选择左侧的Android,然后勾选Google Android Project复选框。

图片说明

C。点击导出按钮。

D。选择C:/AndroidTestProject,然后点击选择文件夹按钮。

图片说明

Unity 将构建您的项目。

生成项目后,将在C:/AndroidTestProject 目录中创建一个新文件夹。该文件夹将以 产品名称播放器设置 中的任何名称命名。这是我在播放器设置中的产品名称:

图片说明

所以在我的例子中,新的文件夹名称将被称为 test 并将位于 C:/AndroidTestProject/test

导入 Android Studio

1。在C:/AndroidTestProject/ 目录中创建一个名为AndroidStudio 的新文件夹。该文件夹的完整路径应为C:/AndroidTestProject/AndroidStudio

A。打开 Android Studio。打开 Android Studio 后,点击导入项目(Eclipse ADT、Gradle 等)

如果未显示导入项目(Eclipse ADT、Gradle等),请转到文件->关闭项目关闭当前项目强>。

图片说明

B。转到导出项目 C:/AndroidTestProject/test 的完整目录,然后选择 test 文件夹,该文件夹是您的 Product Name项目,然后单击确定

图片说明

C。会弹出一个新窗口。将 Import Destination Directory 设置为在步骤 1 中创建的 C:/AndroidTestProject/AndroidStudio

图片说明

D。单击下一步按钮。 勾选/选中以下复选框:

尽可能用依赖项替换 jars尽可能用依赖项替换库源创建 Gradle 样式 (CamelCase) 模块名称

然后点击完成按钮。

图片说明

2。等待 Android Studio 加载您的项目。

您将收到如下所示的错误:

错误:支持的最低 Gradle 版本为 2.14.1。当前版本是 2.10。如果使用 gradle 包装器,请尝试在 C:\AndroidTestProject\AndroidStudio\gradle\wrapper\gradle-wrapper.properties 中编辑 distributionUrl 到 gradle-2.14.1-all.zip 修复 Gradle 包装器和重新导入项目Gradle 设置

A。只需点击Fix Gradle wrapper and re-import project Gradle settings消息。如果您没有看到此消息,请确保您位于 消息 标签中。查看下图了解更多信息。

图片说明

B。等待 Android Studio 完成 Gradle 问题的修复。

完成后,转到Build->Make Project

项目构建完成后,转到Run->Run 'app'

C。会弹出一个新窗口。您可以选择运行应用程序的设备、创建模拟器或选择现有的模拟器来运行应用程序。在本例中,我们将使用真实设备进行测试。

连接的设备下,选择您的设备,然后点击确定按钮。

图片说明

额外

A。如果您希望能够调试您的应用程序,您必须从 Unity 启用它。返回EXPORTING TO Android Studio步骤2B并启用Development Build。同样选择Script Debugging然后点击导出按钮。

B。如果您想查看 Debug.Log 消息,请转到 Android Studio 中的 Android Monitor 选项卡。

下图中圈出的项目是在 Android Studio 中调试时需要了解的重要内容。

图片说明

这并不难。如果您执行一次,您将不再需要此说明。

【讨论】:

谢谢!我部分跳过了复选框:D 我知道你遗漏了一些东西。只是不知道是哪一部分,所以我发布了所有部分。祝 Android Studio 好运。 如果步骤 C 没有出现怎么办? (导入目标目录)它只是提示我是想使用 Gradle 包装器还是手动配置它。我选择了“Gradle wrapper”,但它没有让我改变选择目标文件夹,所以我猜它只是使用 Unity 导出的项目文件夹作为 Android Studio 项目文件夹? @bigp 这里有多个 C。哪个类别的C?另外请记住,这篇文章很旧,我计划更新它以使用 Gradle。 啊,我重新阅读后才意识到有几个'C'。我指出它后面是C.A new Window will pop up. Set the Import Destination Directory to be【参考方案2】:

“我想在 Unity 应用程序在 Android 手机上运行时从它获取日志”。

您不需要导出到android项目,只需在构建设置中启用“开发构建”,然后将手机连接到计算机并在手机上启用“开发模式”和“脚本调试”即可。

然后简单地移动到你的 android sdk 的安装路径,cd 到 platform-tools,从命令提示符或终端运行这些命令

adb logcat 

如果您只想查看统一日志运行

adb logcat -s Unity

【讨论】:

以上是关于将 Unity3D 项目导出并运行到 Android Studio的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D-导出特效到安卓项目流程

Unity3D-导出特效到安卓项目流程

Unity3D-导出特效到安卓项目流程

如何从 Blender 导出到 unity3d

如何将 Unity3d 预制文件批量导出为 FBX 格式?

为啥 Unity3D 应用程序 [导出到 Xcode 项目] 会失败,因为 ip_unity_plugin.bundle 有“包根目录中存在未密封的内容”?