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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/38980792/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-11 20:47:44  来源:igfitidea点击:

Exporting and running Unity3D project to Android Studio

javaandroidandroid-studiounity3d

提问by Umair M

I want to get logs from Unity Application when its running on Android phone. For this I have to export Android project from Unity3D and run it using Android Studio. I am doing following steps:

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

  1. Export Project from Unity3D by selecting Google Android Projectoptions from player settings.
  2. Open Android Studio and Import the autogenerated project from location drive.
  3. Select Build -> Make Project.
  4. Select Run -> Run 'ModuleName'.
  1. 通过从播放器设置中选择Google Android 项目选项,从 Unity3D 导出​​项目。
  2. 打开 Android Studio 并从位置驱动器导入自动生成的项目。
  3. 选择构建 -> 制作项目。
  4. 选择运行 -> 运行“模块名称”。

I am getting following errors in Gradle console:

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

FAILURE: Build failed with an exception.

  • What went wrong: Execution failed for task ': 'ModuleName':transformClassesWithDexForDebug'. java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) Exception in thread "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'' finished with non-zero exit value 1

  • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 0.788 secs

java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) Exception in thread "main"

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

  • 出了什么问题:任务':'ModuleName':transformClassesWithDexForDebug'的执行失败。java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : 在 java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 不支持的major.minor 版本 52.0 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at 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。

    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 : 在 java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 不支持的major.minor 版本 52.0 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at 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) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) 线程“main”中的异常

I have been working with Eclipse long ago but never faced this before. Can anyone guide me how to successfully run a Unity-Android project in Android Studio?

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

采纳答案by Programmer

Exporting and running Unity3D project to Android Studio is not really hard. Make sure the you have the latest version of Unity(5.4)and Android Studio(2.1.3). This steps were made with the version mentioned above.

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

EXPORTING TO Android Studio:

导出到 Android Studio

1.Create a root folder that will hold the exported folders and files. Let's call it AndroidTestProjectin this case and the full Directory will be C:/AndroidTestProject.

1 .创建一个根文件夹,用于保存导出的文件夹和文件。让我们AndroidTestProject在这种情况下调用它,完整的目录将是C:/AndroidTestProject.

2.Exporting to C:/AndroidTestProject.

2.出口到C:/AndroidTestProject

A.File->Build Settings...

一个文件->构建设置...

B.Select Androidon the left then tick Google Android Projectcheckbox.

。选择Android的左侧然后勾选谷歌Android项目复选框。

Image Description: enter image description here

图片说明在此处输入图片说明

C.Click the ExportButton.

C.单击导出按钮。

D.Select C:/AndroidTestProjectthen click the Select FolderButton.

d。选择C:/AndroidTestProject然后单击选择文件夹按钮。

Image Description:

图片说明

enter image description here

在此处输入图片说明

Unity will build your project.

Unity 将构建您的项目。

After Generating the project, a new folder will be created in the C:/AndroidTestProjectdirectory. That folder will be named whatever your Product Nameis in the Player Settings. This what my product name is in the Player Settings:

生成项目后,将在C:/AndroidTestProject目录中创建一个新文件夹。无论您在Player Settings中的Product Name是什么,该文件夹都将被命名。这就是我在播放器设置中的产品名称:

Image Description: enter image description here

图片说明在此处输入图片说明

So in my case, the new Folder name will be called testand will be located at C:/AndroidTestProject/test.

因此,在我的情况下,新文件夹名称将被称为test并将位于C:/AndroidTestProject/test.

IMPORTING INTO Android Studio:

导入 Android Studio

1.Create a new Folder called AndroidStudioin the C:/AndroidTestProject/directory. The full path of that folder should be C:/AndroidTestProject/AndroidStudio.

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

A.Open Android Studio. When you open Android Studio, click on Import project (Eclipse ADT,Gradle, etc.)

A.Open Android Studio。打开Android Studio,点击Import project (Eclipse ADT,Gradle, etc.)

If Import project (Eclipse ADT,Gradle, etc.)is not displayed, close the current project by going to File->Close Project.

如果未显示导入项目(Eclipse ADT、Gradle 等),请转到File-> Close Project 关闭当前项目

Image Description: enter image description here

图片说明在此处输入图片说明

B.Go to the full directory of the exported project C:/AndroidTestProject/testthen select the testfolder which is the Product Nameof your project then click Ok.

B.转到导出项目的完整目录,C:/AndroidTestProject/test然后选择测试文件夹,即项目的产品名称,然后单击“确定”

Image Description: enter image description here

图片说明在此处输入图片说明

C.A new Window will pop up. Set the Import Destination Directoryto be C:/AndroidTestProject/AndroidStudiowhich was created in step 1.

C. 会弹出一个新窗口。设置导入目标目录C:/AndroidTestProject/AndroidStudio这是在步骤1中创建。

Image Description: enter image description here

图片说明在此处输入图片说明

D.Click the NextButton. Tick/Select the follwing check boxes:

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

  • Replace jars with dependencies, when possible.
  • Replace library sources with dependencies, when possible.
  • Create Gradle-style (CamelCase) module names.
  • 如果可能,用依赖项替换 jars
  • 尽可能用依赖项替换库源
  • 创建 Gradle 样式(CamelCase)模块名称

then click the FinishButton.

然后单击完成按钮。

Image Description: enter image description here

图片说明在此处输入图片说明

2.Wait for Android Studioto load your project.

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

You will get an error that looks like this:

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

Error:Minimum supported Gradle version is 2.14.1. Current version is 2.10. If using the gradle wrapper, try editing the distributionUrl in C:\AndroidTestProject\AndroidStudio\gradle\wrapper\gradle-wrapper.properties to gradle-2.14.1-all.zip Fix Gradle wrapper and re-import project
Gradle settings

错误:最低支持的 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.Simply click on the Fix Gradle wrapper and re-import project Gradle settingsmessage. If you don't see this message, make sure that you are in the MessagesTab. Look at the image below for more information.

A.Simply 单击Fix Gradle 包装器并重新导入项目 Gradle 设置消息。如果您没有看到此消息,请确保您位于“消息”选项卡中。查看下图了解更多信息。

Image Description:

图片说明

enter image description here

在此处输入图片说明

B.Wait for Android Studioto finish fixing the Gradle problem.

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

When finished, go to Build->Make Project.

完成后,转到Build-> Make Project

After project is done building, go to Run->Run 'app'.

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

C.A new Window will pop up. You can either chose the device to run the app on, create an emulator or chose already existing emulator to run the app. In this example we will use a real device to test.

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

Under Connected Devices, select your device then click the OKbutton.

Connected Devices 下,选择您的设备,然后单击OK按钮。

Image Description:

图片说明

enter image description here

在此处输入图片说明

Extra:

额外的

A.If you want to be able to debug your App, you have to enable that from Unity. Go back to EXPORTING TO Android Studiostep 2Band enable Development Build.Also select Script Debuggingthen click the ExportButton.

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

B.If you want to see Debug.Logmessages, go to the Android MonitorTab in the Android Studio.

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

The circled items in the image below are important to know when Debugging in Android Studio.

在 Android Studio 中调试时,下图中圈出的项目很重要。

Image Description:

图片说明

enter image description here

在此处输入图片说明

This is not really hard. If you do it once, you won't need this instruction again.

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

回答by AminSojoudi

"I want to get logs from Unity Application when its running on Android phone".

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

You dont need to export to android project , just enable "development build" in build settings then connect your phone to your computer and enable "development mode" and "script debugging" on your phone.

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

then simply move to path your android sdk is installed , cd to platform-tools , run these commands from command prompt or terminal

然后只需移动到您的 android sdk 安装路径,cd 到平台工具,从命令提示符或终端运行这些命令

adb logcat 

if you want to just see unity logs run

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

adb logcat -s Unity