简体   繁体   English

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

[英]Exporting and running Unity3D project to Android Studio

I want to get logs from Unity Application when its running on Android phone.我想在 Android 手机上运行时从 Unity 应用程序获取日志。 For this I have to export Android project from Unity3D and run it using Android Studio.为此,我必须从 Unity3D 导出​​ Android 项目并使用 Android Studio 运行它。 I am doing following steps:我正在执行以下步骤:

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

I am getting following errors in Gradle console:我在 Gradle 控制台中收到以下错误:

FAILURE: Build failed with an exception. FAILURE:构建失败,出现异常。

  • What went wrong: Execution failed for task ': 'ModuleName':transformClassesWithDexForDebug'.出了什么问题:任务':'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" 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) ) 在 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'' finished with non-zero exit value 1 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

  • Try: Run with --stacktrace option to get the stack trace.尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。 Run with --info or --debug option to get more log output.使用 --info 或 --debug 选项运行以获得更多日志输出。

BUILD FAILED构建失败

Total time: 0.788 secs总时间:0.788 秒

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" 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) ) 在 sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) 线程“main”中的异常

I have been working with Eclipse long ago but never faced this before.我很久以前就一直在使用 Eclipse,但以前从未遇到过这种情况。 Can anyone guide me how to successfully run a Unity-Android project in Android Studio?谁能指导我如何在 Android Studio 中成功运行 Unity-Android 项目?

Exporting and running Unity3D project to Android Studio is not really hard.将 Unity3D 项目导出并运行到 Android Studio 并不难。 Make sure the you have the latest version of Unity(5.4) and Android Studio(2.1.3) .确保您拥有最新版本的Unity(5.4)Android Studio(2.1.3) This steps were made with the version mentioned above.此步骤是使用上述版本进行的。

EXPORTING TO Android Studio :导出到 Android Studio

1 .Create a root folder that will hold the exported folders and files. 1 .创建一个根文件夹,用于保存导出的文件夹和文件。 Let's call it AndroidTestProject in this case and the full Directory will be C:/AndroidTestProject .在这种情况下,我们将其称为AndroidTestProject ,完整目录将为C:/AndroidTestProject

2 .Exporting to C:/AndroidTestProject . 2 .导出到C:/AndroidTestProject

A .一个 File -> Build Settings...文件->构建设置...

B .Select Android on the left then tick Google Android Project checkbox. B . 选择左侧的Android ,然后勾选Google Android Project复选框。

Image Description :图片说明 在此处输入图片说明

C .Click the Export Button. C.单击导出按钮。

D .Select C:/AndroidTestProject then click the Select Folder Button. D .选择C:/AndroidTestProject然后单击选择文件夹按钮。

Image Description :图片说明

在此处输入图片说明

Unity will build your project. Unity 将构建您的项目。

After Generating the project, a new folder will be created in the C:/AndroidTestProject directory.生成项目后,会在C:/AndroidTestProject目录下新建一个文件夹。 That folder will be named whatever your Product Name is in the Player Settings .无论您在Player Settings中的Product Name是什么,该文件夹都将被命名。 This what my product name is in the Player Settings :这就是我在播放器设置中的产品名称:

Image Description :图片说明 在此处输入图片说明

So in my case, the new Folder name will be called test and will be located at C:/AndroidTestProject/test .所以在我的情况下,新文件夹名称将被称为test并将位于C:/AndroidTestProject/test

IMPORTING INTO Android Studio :导入 Android Studio

1 .Create a new Folder called AndroidStudio in the C:/AndroidTestProject/ directory. 1 . 在C:/AndroidTestProject/目录中创建一个名为AndroidStudio的新文件夹。 The full path of that folder should be C:/AndroidTestProject/AndroidStudio .该文件夹的完整路径应为C:/AndroidTestProject/AndroidStudio

A .Open Android Studio . A .Open Android Studio When you open Android Studio, click on Import project (Eclipse ADT,Gradle, etc.)打开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 :图片说明 在此处输入图片说明

B .Go to the full directory of the exported project C:/AndroidTestProject/test then select the test folder which is the Product Name of your project then click Ok . B .转到导出项目的完整目录C:/AndroidTestProject/test然后选择test文件夹,它是您项目的产品名称,然后单击Ok

Image Description :图片说明 在此处输入图片说明

C .A new Window will pop up. C . 会弹出一个新窗口。 Set the Import Destination Directory to be C:/AndroidTestProject/AndroidStudio which was created in step 1.导入目标目录设置为在步骤 1 中创建的C:/AndroidTestProject/AndroidStudio

Image Description :图片说明 在此处输入图片说明

D .Click the Next Button. D.单击下一步按钮。 Tick/Select the follwing check boxes:勾选/选择以下复选框:

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

then click the Finish Button.然后单击完成按钮。

Image Description :图片说明 在此处输入图片说明

2 .Wait for Android Studio to load your project. 2 .等待Android Studio加载您的项目。

You will get an error that looks like this:您将收到如下所示的错误:

Error:Minimum supported Gradle version is 2.14.1.错误:最低支持的 Gradle 版本是 2.14.1。 Current version is 2.10.当前版本是 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 包装器,请尝试将 C:\\AndroidTestProject\\AndroidStudio\\gradle\\wrapper\\gradle-wrapper.properties 中的 distributionUrl 编辑为 gradle-2.14.1-all.zip 修复 Gradle 包装器并重新导入项目
Gradle settings摇篮设置

A .Simply click on the Fix Gradle wrapper and re-import project Gradle settings message. A .Simply 单击Fix Gradle 包装器并重新导入项目 Gradle 设置消息。 If you don't see this message, make sure that you are in the Messages Tab.如果您没有看到此消息,请确保您位于“消息”选项卡中。 Look at the image below for more information.查看下图了解更多信息。

Image Description :图片说明

在此处输入图片说明

B .Wait for Android Studio to 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. C . 会弹出一个新窗口。 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.在本例中,我们将使用真实设备进行测试。

Under Connected Devices , select your device then click the OK button.Connected Devices 下,选择您的设备,然后单击OK按钮。

Image Description :图片说明

在此处输入图片说明

Extra :额外的

A .If you want to be able to debug your App, you have to enable that from Unity . A .如果您希望能够调试您的应用程序,您必须从Unity启用它。 Go back to EXPORTING TO Android Studio step 2B and enable Development Build .Also select Script Debugging then click the Export Button.返回EXPORTING TO Android Studio步骤2B并启用Development Build 。同时选择Script Debugging然后单击Export按钮。

B .If you want to see Debug.Log messages, go to the Android Monitor Tab 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 :图片说明

在此处输入图片说明

This is not really hard.这并不难。 If you do it once, you won't need this instruction again.如果您执行一次,您将不再需要此指令。

"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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM