Articles of unity3d

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

我希望在Android手机上运行时从Unity Application获取日志。 为此,我必须从Unity3D导出Android项目并使用Android Studio运行它。 我正在做以下步骤: 从播放器设置中选择Google Android Project选项,从Unity3D导出项目。 打开Android Studio并从位置驱动器导入自动生成的项目。 选择Build – > Make Project。 选择“运行” – >“运行”“ModuleName”。 我在Gradle控制台中遇到以下错误: FAILURE:构建因exception而失败。 出了什么问题:任务执行失败’:’ModuleName’:transformClassesWithDexForDebug’。 java.lang.UnsupportedClassVersionError:com / android / dx / command / Main:java.lang.ClassLoader.defineClass(ClassLoader.java:800)中java.lang.ClassLoader.defineClass1(Native Method)中不支持的major.minor版本52.0 at java.net上的java.net.URLClassLoader.access $ 100(URLClassLoader.java:71)的java.net.URLClassLoader.defineClass(URLClassLoader.java:449)中的java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)。 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)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 )在sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)线程“main”中的exception com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程’命令’C:\ Program Files \ Java \ jdk1.7.0_79 […]

与Unity使用Facebook插件时的ActivityNotFoundException

我正在使用Unity 5.2.2p2,Facebook Unity SDK 7.2.2和Prime31的Android IAB插件2.9。 当我编译我的应用程序并在设备上运行它时,在adb日志中我看到: I/Unity (18149): AndroidJavaException: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.—–.—-/com.facebook.unity.FBUnityLoginActivity}; have you declared this activity in your AndroidManifest.xml? I/Unity (18149): at UnityEngine.AndroidJNISafe.CheckException () [0x00000] in :0 I/Unity (18149): at UnityEngine.AndroidJNISafe.CallStaticVoidMethod (IntPtr clazz, IntPtr methodID, UnityEngine.jvalue[] args) [0x00000] in :0 I/Unity (18149): at UnityEngine.AndroidJavaObject._CallStatic (System.String methodName, System.Object[] args) […]

在实施Soomla Unity3d插件时进行购买时出现Google播放错误

我正在创建一个实现Soomla Unity IAP插件的应用程序。 在努力使IAP工作的过程中,我已经达到了可以在编辑器中进行购买的程度。 (不是真正的购买,它只是更新用户可以在游戏中购买/消费的虚拟货币)。 当我在Android设备上启动它时,我收到此错误: 需要身份validation。 您需要登录自己的Google帐户。 现在我已经阅读了多篇不同的文章,其中人们遇到了这个问题,似乎没有什么能帮到我。 这是我到目前为止所尝试的列表: 1)确保将应用程序发布到alpha或beta进行测试。(现在在alpha中) 2)确保价格与游戏和开发者控制台匹配。 3)使用以未使用开发人员电子邮件的用户身份登录的设备。 4)确保测试设备上的电子邮件在开发人员控制台中列为测试人员。 5)确保Android Manifest中列出了必要的权限。 6)确认商户帐户已正确设置并validation。 7)确保构建为发布而不是开发(不确定这是否重要,但我尝试了两种方式)。 8)从项目中完全删除了所有Soomla插件,然后将其重新添加,同时非常仔细地遵循教程,以确保没有遗漏任何小东西。 仍然没有骰子。 我将核心和商店组件添加到他们必要的场景中。如果您对解决此问题应采取的措施有任何其他想法,请告诉我。 同时,这是我用于设置Soomla的StoreAssets.cs代码: using UnityEngine; using System.Collections; using System.Collections.Generic; using Soomla.Store; public class StoreAssets : IStoreAssets { public static bool purchased = false; public int GetVersion() { return 0; } public void onItemPurchased(PurchasableVirtualItem pvi, string payload) […]

为什么调用Process.killProcess(Process.myPid())是个坏主意?

我读过一些post说使用这种方法“不好”,不应该使用,这不是“关闭”应用程序的正确方法,而不是android的工作方式…… 我理解并接受这样一个事实,即在正确的时间终止这个过程时,Android OS比我更清楚,但我没有听到一个很好的解释为什么使用killProcess()方法是错误的? 毕竟 – 它是android API的一部分…… 我所知道的是,调用此方法时,其他线程正在执行潜在的重要工作(对文件的操作,写入数据库,HTTP请求,运行服务……)可以在中间终止,而且显然不是很好。 此外,我知道我可以从“重新打开”应用程序将更快的事实中受益,因为系统可能仍然在上次使用时保持在内存状态,并且killProcess()阻止了这一点。 除了这个原因,假设我没有这样的操作,并且我不关心我的应用程序将从头开始每次运行,还有其他原因不使用killProcess()方法? 我知道关闭一个Activity的finish()方法,所以请不要写我的内容.. finish()仅适用于Activity 。 不是所有应用程序,我想我确切知道为什么以及何时使用它… 还有一件事 – 我正在使用Unity3D框架开发游戏,并将项目导出到android。 当我反编译生成的apk时,我非常惊讶地发现使用Process.killProcess(Process.myPid())从Unity创建的java源代码 – 实现Unity的Process.killProcess(Process.myPid()) Application.quit()方法。 根据Unity3d指南, Application.quit()被认为是关闭游戏的正确方法(它真的吗?也许我错了,错过了一些东西),所以Unity的框架开发人员如何做得非常好它似乎在本机android中实现了killProcess() ?

Android和Unity 3D游戏开发

我开始使用unity 3d for android探索游戏开发。 我已经下载了unity 3.3的试用版。 我经历了一些教程。 我有一个问题没有回答。 在我们使用eclipse开发的普通应用程序中,我们可以通过复制apk文件部署到移动设备上。 团结3d怎么样? 如何将游戏放到手机上。 我不想在市场上发布。

Unity Android构建错误WIN32exceptionZipAlign

每次我尝试为Android构建我的游戏时,都会收到此错误: Error building Player: Win32Exception: ApplicationName=’…/…/…/…/adt-bundle-mac-x86_64-20140624/sdk/tools/zipalign’, CommandLine=’4″/…/…/…/…/Asteroid2(2)/Temp/StagingArea/Package.apk'”. CurrentDirectory=’Temp/StagingArea’ 有任何想法吗? 我很难过。 我重新下载了SDK,但没有帮助。

ant jar错误:执行失败:java.io.IOException:无法运行程序… $ {aapt}“:error = 2,没有这样的文件或目录

我正在尝试为Unity编译一个简单的Java库,运行ant jar后,我收到以下消息: /Applications/adt-bundle-mac-x86_64-20140702/sdk/tools/ant/build.xml:649: The following error occurred while executing this line: /Applications/adt-bundle-mac-x86_64-20140702/sdk/tools/ant/build.xml:694: Execute failed: java.io.IOException: Cannot run program “/Users/****/UnityProjects/****/JavaTestPlugin/${aapt}”: error=2, No such file or directory 这很奇怪,因为我在成功之前编译了这个类,并且我拥有我认为需要的一切。 即Android Studio和相关软件包(Tools,Android 4/5等)。 我注意到aapt不在我的adt-bundle / sdk / platform-tools目录中,但是它位于一个build-tools目录中。 即使在我的道路上包括后者也无济于事。 无论如何,我正在使用最新版本的Android Studio运行Mac OS 10.10.3。 此类在升级到Yosemite之前编译。 我已经看到了如何解决这个问题的建议,但所有这些建议都适用于Linux而不是Mac OS。

构建播放器烘焙运行时Android永远加载

我一直在Unity上用3个场景构建Android应用程序。 前2个场景完美无缺,但最后一个场景给了我麻烦。 游戏一直在崩溃 因此,在查看Unity论坛时,他们建议我将所有对象粘贴到新场景上并尝试查看它是否有效。 但是现在我已经这样做了,我甚至都无法导出它。 在构建播放器时,我的装载机卡在此: Building Scene 2: Name (10/15 Bake Runtime | 1 jobs) 我没有更改设置中的任何其他内容,如果我删除第3个场景,它会正常构建。 当我只添加第3个场景时,它会卡在同一个场景上。 可能是什么问题呢?

在Unity应用程序启动时阅读Android意图附加数据

我使用自定义隐式意图从另一个Android应用程序启动Unity应用程序。 这工作正常,但我不知道如何阅读在Unity中的意图额外的数据? ANDROID意图启动UNITY APP i=new Intent(); i.setAction("com.company.unityapp.MyMethod"); i.putExtra("KEY","This is the message string"); startActivity(i); UNITY APP AndroidManifest.xml <intent-filter> <action android:name="com.company.unityapp.MyMethod" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> 我的场景中有一个GameObject,附有一个脚本。 在启动方法里面,我有这个代码来尝试读取与意图一起传递的额外数据 AndroidJavaClass UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity"); AndroidJavaObject intent = currentActivity.Call<AndroidJavaObject>("getIntent"); bool hasExtra = intent.Call<bool> ("hasExtra", "arguments"); if (hasExtra) { AndroidJavaObject extras = intent.Call<AndroidJavaObject> ("getExtras"); arguments = […]

将Unity与Eclipse集成 – 如何遵循“官方”教程的说明?

我已经阅读了关于如何将针对Android的Unity3D项目集成到eclipse中的所有文档。 我想这样做的原因是能够在我自己的“普通”Android应用程序中调用Unity3D Activity。 那么,我试图按照本教程中列出的步骤。 使用我能想象到的所有组合,我做了以下操作: 我使用Unity Android项目并在Unity IDE中构build它,然后将/Temp/StagingArea/文件夹复制到另一个位置。 我创build了一个新的Android项目,使用从现有源创build,设置StagingArea复制文件夹的位置。 这将是Android库项目。 在属性 – > Android上检查“库”。 再次,我创build一个Android项目,导入以前创build的Android库项目和classes.jar 。 我将 asset文件夹的内容从库项目移动到“活动”项目。 它有两个子文件夹, bin和libs 。 我修改生成的Activity以扩展UnityPlayerActivity并删除onCreate方法的setContent行。 更改软件包以匹配Unity Player软件包ID。 将相应的行添加到清单,基本上是库项目中的那些行。 所以一切都编译没有错误,我可以运行该项目,显示启animation面,然后黑屏,正确地播放我的Unity场景的声音。 logcat显示以下错误: 01-26 16:51:46.415: D/dalvikvm(2299): Trying to load lib /data/data/es.fundacionvf.unity.gps/lib/libQCARWrapper.so 0x40515a38 01-26 16:51:46.415: E/Unity(2299): Unable to find QCARWrapper 01-26 16:51:46.415: D/dalvikvm(2299): Trying to load lib /data/data/es.fundacionvf.unity.gps/lib/libQCARWrapper.so 0x40515a38 01-26 16:51:46.415: E/Unity(2299): […]