如何在Unity中对微信小程序真机运行进行 Android 真机断点调试

博客分类:
非常详细的测试unity与android之间的通讯操作
这段时间在研究嵌入sdk,途中遇到不少问题和坑,在这就不一一说了。嵌入sdk是比较常见的吧,如接入广告啊, 新浪的分享...... 这些都需要接入sdk的。(这些我在这段时间都应以研究成功了,后期会写上)。现在我们从最基本的做吧。
其实这些和什么引擎都是没多大关系的。不管是 unity,还是cosos2d......
说白了,这些就是和移动平台有关系。ios,android,wp8啊。
如果你不熟悉android,没关系,即使你是从未打开过eclipse都可以,因为我把详细步骤给以图片的方式展示出来。现在我们就从最基本的做起吧。主要是实现在unity中去调android的方法。其实这个很简单,只是为了从未接触过安卓的人才弄的这样详细。(我以前没接触过安卓,当时多么希望能有一份这样的教程教导我啊。)
打开eclipse,新建一个安卓的工程。
在 这里要注意我们的包名,和最低的sdk,包名的话我们在unity中导出的时候需要用到。至于最低的sdk就是一个兼容问题了,如果我们选4.0一下的 话,那当我们在unity导出的时候会报错误的。我在这坑了很久很久,最后才发现一系列的错误是这个因起来的。最好是要在32位的sdk,jdk中进行 吧,这样会少很多莫名的错误问题, 注意的就是我在下图圈起来的地方。
我们一直狂点下一步,当我们看见这个时,就是最后一步了。
如果大家都没错,创建的新工程就是如下一样了。我圈起来的地方多是会用到了,需要注意的地方。
2.现在我们安卓工程创建好了,就到了开始编写的时候了。我们打开unity的安装目录
例如:D:\Program Files (x86)\Unity\Editor\Data\PlaybackEngines\androidplayer\bin找到class.jar 。
这个是unity帮我们封装好了的jar包,我们要用到该包。
然后我们将class.jar,放进我们的安卓工程去。直接拖进libs目录就可以。如图
现在我们来引用下吧,选中它,右键.......... 如下:
3. 好了,现在我们把重要的都加进来了,那我们现在就来做个简单的实验,就是点击unity中德按钮,打开一个安卓的ACtivity吧。我们首先要做的就是 把这个Activity布局。我们在res--layout文件夹下找到activity_main打开,加入这些内容:
&?xml version="1.0" encoding="utf-8"?&
&ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.ITFFuture.testua.MainActivity"
tools:ignore="MergeRootFrame" &
&LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"&
android:id="@+id/textView0"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="18sp"
android:background="#00FF00"
android:text="测试Unity和Android之间额通讯"
android:gravity="center_vertical|center_horizontal"
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:textSize="18sp"
android:background="#0000FF"
android:text="大家好,我是安卓的Activity"
android:gravity="center_vertical|center_horizontal"
android:id="@+id/button0"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="关闭这个Activity"/&
&/LinearLayout&
&/ScrollView&
我们的内容转成实际界面是这样的样子。
现在我们来新建一个Class,取名为OpenActivity1,如图:
然后我们接入代码,代码内容如下:
package com.ITFFuture.
import android.app.A
import android.os.B
import android.view.V
import android.view.View.OnClickL
import android.widget.B
import android.widget.TextV
public class OpenActivity1 extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView text = (TextView)this.findViewById(R.id.textView1);
text.setText(this.getIntent().getStringExtra("name"));
Button close = (Button)this.findViewById(R.id.button0);
close.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
OpenActivity1.this.finish();
这个代码很简单,,改变中间的字母内容,是点击关闭按钮,关闭此Activity.最终效果如下:
好了,现在我们在MainActivity中谢方法吧,这个Activity就相当于第一个场景。 MainActivity的内容:
package com.ITFFuture.
import com.unity3d.player.UnityPlayerA
import android.os.B
import android.app.A
import android.content.C
import android.content.I
public class MainActivity extends UnityPlayerActivity {
Activity mActivity=
Context mContext =
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActivity=
mContext =
StartActivity1("我是通过安卓中显示的Activity");
public void StartActivity1(String name)
// TODO Auto-generated method stub
Intent intent = new Intent(mContext,OpenActivity1.class);
intent.putExtra("name", name);
mActivity.startActivity(intent);
还有最后一点,要配置AndroidManifest.xml.声明我们定义的Activity.
&?xml version="1.0" encoding="utf-8"?&
&manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ITFFuture.testua"
android:versionCode="1"
android:versionName="1.0" &
android:minSdkVersion="8"
android:targetSdkVersion="18" /&
&application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" &
android:name="com.ITFFuture.testua.MainActivity"
android:label="@string/app_name" &
&intent-filter&
&action android:name="android.intent.action.MAIN" /&
&category android:name="android.intent.category.LAUNCHER" /&
&/intent-filter&
&/activity&
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:name=".OpenActivity1"&
&/activity&
&/application&
&/manifest&
我们主要是声明了我们自己的Avtivity,这个很重要,在后期加入广告啊,新浪微博分享爱啊....
好了,那我们最终来导出jar包吧。在导出之前还是先刷新下(F5),和Build 下Project.
我们现在来导出吧。
现在我们的jar包已经成功导出了。是这样子的 我们在安卓中的所有操作也就完成了哈,现在接下来的就是如何和unity进行互通了。
上面导出的jar文件(Test.jar)如果用解压软件打开会发现,除了class文件,还有项目中的资源文件、lib库,这样虽然这个jar文件在unity中可以使用,但增大了文件大小,因此可以用下面的方法来导出一个纯净的jar文件(只含有class文件)。
代码所有的.class文件都生成在了Android工程的bin文件夹中,当前工程的路径是 TestUA-&bin-&classes-&com-&ITFFuture-&testua-&你的.class文件。下面需 要对这些.class文件进行打包,苹果系统的话打开电脑的终端,cd到classes文件夹的目录下,接着执行代码
jar -cvf Test.jar *
这行代码的意思是把当前目录下的所有.class文件打包成.jar文件,保存文件名称为Test.jar。你可以再解压看看,可以看到厘米只有class文件。
3.从unity中去调用
在 unity中,我们新建一个Plugins文件夹,Plugins下面又建Android文件夹,Android文件夹下再建一个bin文件夹,我们将我 们导出的jar包放进这个文件夹下,然后我们在eclipse中的res文件复制一份放入Android。也要把AndroidManifest.xml 放进Android目录下。详细情况如下:
现在我们新建一个脚本吧。用来调用安卓中那个StartActivity1方法。
using UnityE
using System.C
public class js001 : MonoBehaviour {
private AndroidJavaObject m_
// Use this for initialization
void Start () {
AndroidJavaClass jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
m_activity = jc.GetStatic&AndroidJavaObject& ("currentActivity");
void OnGUI(){
//call hello world
if(GUI.Button(new Rect(50,50,200,40),"Open Activity")){
m_activity.Call("StartActivity1","Unity中调出android的方法了");
if(Input.GetKey(KeyCode.Escape)||Input.GetKey(KeyCode.Home)){
Application.Quit();
// Update is called once per frame
void Update () {
最后我们导出apk吧。在其中要设置一项。就是包名。这个要和安卓工程的包名一模一样哦。
然后我们运行下吧。
在刚开始的时候我们会看安卓中德Activity,然后我们点击关闭按钮,就能看那Unity的Scene了。这个是我们点击Open Activity这个按钮时候,安卓中的Activity又被我们打开了。
好了,测试成功!!
遇到的问题:
1. U3D导出安卓版本,总会出现Unable to find unity activity in manifest. You need to make sure orientation attribut is set to portrait manually.
解决方法:在AndroidManifest.xml加入一行参数就可以了。
&meta-data android:name="unityplayer.UnityActivity" android:value="true" /&
参数位置如下图:
浏览 31025
stephen830
浏览: 2126893 次
来自: 上海
Netty视频教程https://www.douban.com ...
使用Netty进行Android与Server端通信实现文字发 ...
非常感谢,正好用上
提示的/222.177.4.242
无法链接到ip地址,是什 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'如何在Unity中对程序进行 Android 真机断点调试? - 知乎99被浏览<strong class="NumberBoard-itemValue" title="1分享邀请回答0添加评论分享收藏感谢收起11:22 提问
安卓 程序不能进行真机调试
程序可以用run运行到手机上,但是debug就会出问题,我把问题贴出来
Error running Unnamed:
Cannot debug application from module app on device tianyu
This application does not have the debuggable attribute enabled in its manifest
If you have manually set in the manifest,then remove it and let the IDE automatically assign it,
If you are using Gradle ,make sure that your current variant is debuggable
被这个问题困扰很久了,在网上找了很多资料,最终还是没解决
按赞数排序
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!
是不是你的手机没有安装驱动呀?
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐如何在Unity中对程序进行 Android 真机断点调试_百度知道
如何在Unity中对程序进行 Android 真机断点调试
我有更好的答案
 1.首先在手机上开启USB调试功能,并安装驱动(这一步很多手机助手都可以完成)。  2.用USB电缆连接手机和电脑。  3.确保手机和电脑在一个局域网内,简单的说就是电脑和手机共用一个路由器,网段一样。  4.打开电脑上CMD窗口,输入以下命令:  adb tcpip 5555(该命令打开手机adb网络调试功能)  正常情况下输入命令后控制台会出现回显
采纳率:74%
来自团队:
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
Unity Profiler之Android真机调测
摘要:U3D中的Profile也是可以直接在链接安卓设备运行游戏下查看的,导出真机链接U3D的Profile看数据,这样能更好的测试具体原因。大概看了下官方的做法,看了几张帖子顺带把做法记录下来。参考:http://docs.unity3d.com/Documentation/Manual/Profiler.html用安卓真机调测Profile的数据,其实就两种方法,WIFI和ADB的方式。其实一般用的都是ADB方式,因为很少情况是你的电脑与手机是在同一子网WIFI下的。除非是你个
U3D中的Profile也是可以直接在链接安卓设备运行游戏下查看的,导出真机链接U3D的Profile看数据,这样能更好的测试具体原因。大概看了下官方的做法,看了几张帖子顺带把做法记录下来。参考:http://docs.unity3d.com/Documentation/Manual/Profiler.html用安卓真机调测Profile的数据,其实就两种方法,WIFI和ADB的方式。其实一般用的都是ADB方式,因为很少情况是你的电脑与手机是在同一子网WIFI下的。除非是你个人的网络。备注:如果你需要导出的游戏在非导出的机子上PROFILE的话,最好在导出的机子随便先导个带PROFILE的空项目。这样才能很容易链接上,不然是很麻烦的事情。1.以WIFI的方式。这个方法需要电脑所在的网络和手机所在的网络在同一子网下才能进行。(1)导出U3D项目的时候勾选Profile,安装游戏到手机。(2)打开游戏的时候,同时打开window-&profiler,然后选择选择输入IP,连上即可。
2.以ADB的方式。注意防火墙是否屏蔽掉了端口,若屏蔽就打开。(1)导出U3D项目的时候勾选Profile,安装游戏到手机。(2)打开CMD命令行,cd到adb根目录,然后输入以下命令。将下面&这里加你的包名&改为你游戏打包出来的名,即Bundle Identifier。例如:com.Company.aaa。&&&& adb forward tcp:54999 localabstract:Unity-这里加你的包名(3)打开游戏的时候,同时打开window-&profiler,然后选择选择AndroidProfiler(:54999),连上即可。
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
为您提供0门槛上云实践机会
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
Unity Profiler之Android真机调测相关信息,包括
的信息,所有Unity Profiler之Android真机调测相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
International}

我要回帖

更多关于 小程序怎么真机调试 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信