A. 如何在Unity中对程序进行 android 真机断点调试
程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。编完计算机程序,必须送入计算机中测试。
B. 诡异,Unity在安卓运行崩溃问题,求助
用unity写了一个功能,在安卓上运行。功能是点击Button(Unity的GUI),调用Android代码,重新加载Android程序。 问题:点击Button后,程序黑屏,貌似是奔溃掉了,不知道问题出在哪,请各位看官有头绪的请帮忙解释下!! 接上真机在Eclipse中调试没有发现报红。
以下是Unity响应Button:void OnGUI() {
if (GUILayout.Button("Restart application",GUILayout.Width(100),GUILayout.Height(100)))
{
using (AndroidjavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
using (AndroidJavaObject jo = jc.GetStatic("currentActivity"))
{
jo.Call("StartApp");
}
}
}
}
以下是Android端实现重新加载Android程序的代码:public void StartApp(){ Intent intent = MainActivity.this.getPackageManager().getLaunchIntentForPackage(this.getPackageName()); startActivity(intent);
}
C. unity3d android怎么调试
目前貌似不支持断点调试,但可以通过日志打印(logcat)来跟踪。
在Android SDK中有个adb工具,使用此工具来跟踪运行的android应用:
adb logcat
启动logcat,并将设备上运行的Android应用的运行时信息全部打印出来。
adb logcat -s Unity
如果只想打印Unity的输出信息,使用此命令。
adb logcat -d > logcat.txt
将打印信息输出为文件。
当然,更直接的做法是在应用中集成自己的调试信息窗口,将如下代码关联到一个gameobject:
using UnityEngine;
using System.Collections;</p><p>public class GuiTextDebug : MonoBehaviour
{
private float windowPosition = -440.0f;
private int positionCheck = 2;
private static string windowText = "";
private Vector2 scrollViewVector = Vector2.zero;
private GUIStyle debugBoxStyle;
private float leftSide = 0.0f;
private float debugWidth = 420.0f;
public bool debugIsOn = false;
public static void debug(string newString)
{
windowText = newString + " " + windowText;
UnityEngine.Debug.Log(newString);
}
void Start()
{
debugBoxStyle = new GUIStyle();
debugBoxStyle.alignment = TextAnchor.UpperLeft;
leftSide = 120;
}
void OnGUI()
{
if (debugIsOn)
{
GUI.depth = 0;
GUI.BeginGroup(new Rect(windowPosition, 40.0f, leftSide, 200.0f));
scrollViewVector = GUI.BeginScrollView(new Rect (0, 0.0f, debugWidth, 200.0f),
scrollViewVector,
new Rect (0.0f, 0.0f, 400.0f, 2000.0f));
GUI.Box(new Rect(0, 0.0f, debugWidth - 20.0f, 2000.0f), windowText, debugBoxStyle);
GUI.EndScrollView();
GUI.EndGroup ();
if (GUI.Button(new Rect(leftSide, 0.0f,75.0f,40.0f), "调试"))
{
if (positionCheck == 1)
{
windowPosition = -440.0f;
positionCheck = 2;
}
else
{
windowPosition = leftSide;
positionCheck = 1;
}
}
if (GUI.Button(new Rect(leftSide + 80f,0.0f,75.0f,40.0f),"清除"))
{
windowText = "";
}
}
}
}
D. unity直连android手机时adb命令出错
工具:
1.Unity
2.Android SDK
3.Android真机**
手机端设置:
我这里用的是华为C8815,PC上要有手机的驱动,可以下个XX手机助手,连上手机后会自动安装驱动,驱动安装完成后XX助手要卸掉防止端口占用。
驱动安装好之后手机打开设置–开发者人员选项,开启开发都模式并打开USB调试,我的是这个样子
E. 如何配置unity3d的安卓手机开发环境
1.Android运行环境的搭建
进行安卓系统的软件设计,那么JDK的开发环境搭建必须是首要的。我们选择Windows10 64位操作系统。同时在JDK版本的选择中选用Windows x64版本的Java SE Development Kit 8u5,该版本稳定,应用广泛而且开源免费,获取方便。在安装的过程中要注意不要重复安装,应安装完毕后立即删除安装包,否则如果不小心再次点到安装包,该安装包会立刻删除所安装的程序并询问是否重新安装。在JDK的安装过程中,要注意开发工具,源代码,公共JRE三项都要选中,而且要安装到C盘默认目录下,同时将其附带的JRE同样安装到相同目录下,同时硬盘至少应该留有2G的空间。
选择好JDK的版本并进行安装后,我们的JAVA环境就安装好了,众所周知,安卓系统是由JAVA语言架构的,所以在搭建安卓运行环境之前必须要先安装JAVA环境。安装完JAVA环境之后,我们进行安卓开发环境的搭建。我们就要进行Android SDK版本的选择。我们这里选择android-sdk_r24.4.1-windows版本。这个版本是与安卓8.0同时发布的,同时它的发布时间也在我们的安卓测试机红米NOTE5A型号之后,可以完美兼容我们的安卓测试机所运行的安卓7.1.2版本。
以上就是安卓环境的安装和搭建,更多Unity开发方面的问题可以看下这个视频教程网页链接,希望我的回答能帮到你。
F. unity 调用android java 要真机测试吗
在开始调用任何安卓代码之前,确保你可以把你的程序编译成安卓的apk,在安装完安卓环境之后,Unity需要进行一些设置才可以编译,第一次编译需要设置ADK的目录,打开Preferences设置。
步骤如下:
创建Android 项目
导入Unity的classes.jar(这里他只说了mac下的方法,win下我的目录是in)
编写代码和相关的XML(这一点他把代码都贴出来了,可以直接复制)
Build安卓项目,在bin/classes目录下打包所有class成jar 在该目录下执行
jar-cvfclass.jar*
将打包好的class.jar 放到Assert目录下的 Plugins/Android 下,可以是任意名字和目录,Unity会在这里查找所有的jar作为插件,另外将安卓项目的res文件夹以及AndroidManifest.xml拷贝到Plugins/Android目录下
编写调用Java的测试脚本,并拖到场景中的对象上(直接拖到摄像机上面就可以了)
设置好程序的PlayerSettings,Identification Bundle Identifier*,设置为你的包名(我猜想,不设置这里,在AndroidManifest设置Activity的android:name,在类名前加上完整的包名应该是可以的)
Build编译成apk,然后安装到手机或者虚拟机上,运行,查看Log cat
G. unity工程是怎么在android上运行的
首先我们要创建一个android项目 因为项目需要使用Unity提供的接口,所以需要将接口classes.jar引入至当前工程但中。接口包的所在地,打开Finder->应用程序->Unity->点击Unity图标,鼠标右键选择“显示包内容”->Contents->PlaybackEngines->AndroidPlayer->bin->classes.jar 。接口包引入工程后,开始编写JAVA代码。 UnityTestActivity是主Activity,Unity程序一起动就会调用这个Activity,它是在AndroidManifest.xml中配置的。它需要继承UnityPlayerActivity,然而它就是刚刚我们引入的classes.jar包中提供的接口类。UnityTestActivity对外提供了两个方法接口,StartActivity0(String name) 方法与StartActivity1(String name)方法,这两个方法是在Unity中使用C#脚本调用的,意思是调用后程序将打开一个新的Activity,参数name也是由C#脚本传递过来的,接着将传递的String参数继续传递给新打开的Activity。 接下来就是设置xml文件和布局文件了。对于会android编程的同学就很熟悉了。 把写好的java代码发布成jar包。接下来就创建unity工程,Unity工程中文件夹的结构如下,Plugins->Android的名称不能修改,必需保持一致。接着把Eclipse中Android的工程文件拷贝至这里,除了Android工程中的src文件夹,将其它文件夹全部拷贝至Plugins->Android文件夹中。最后在Plugins->Android文件夹中创建bin文件夹,然后将刚刚生成的.jar文件拷贝进来,jar的名称可以随便修改,但是jar包里面必须是com->xys->你的class文件,否则运行程序后提示找不到类文件。 接下来就是如何在C#中调用android的方法的代码了。 加入如下代码。 AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity"); jo.Call("StartActivity0","第一个Activity"); 先得到AndroidJavaClass,然后得到AndroidjavaObject就是当前Activity的对象,也就是我们在上面创建的主UnityTestActivity.JAVA。拿到它的对象后调用jo.Call()参数1表示调用UnityTestActivity.JAVA类中的方法名称,参数2表示该方法传递过去的参数。如下图所示:“第一个Activity”与“第二个Activit”就是我在C#中传递过去的字符串。 7 发布成android平台apk