目录
目的:确保adb能检测到手机,通过adb devices命令能够呈现如下效果
目的:配置unity中Build Settings界面与Player Settings界面的参数,能够通过Build打出一个APK包
目的:unity Console窗口与Profiler窗口能够监听到程序的Debug信息

1、手机用数据线连接电脑,确保打开USB调试模式,保持手机在整个过程中保持解锁与亮屏
2、在你的安卓SDK配置目录下找到platform-tools文件夹,通过输入框打开cmd程序

3、输入adb devices,输出窗口中存在目标安卓设备这一步骤即完成。
如果设备中存在多个安卓SDK的话,确保ADB是UNITY所关联的SDK中的,SDK路径可以通过
Edit->Preferences->External Tools 中查询

1、输入命令后依旧检测不到设备
可尝试方法:
(1) 用管理员权限运行CMD,再跳转到platform-tools文件夹后执行之后的步骤。
(2) 输入adb kill-server 命令关闭adb服务,再通过adb start-server 命令重启adb服务,后再执行步骤3。
(3) 部分手机在输入adb devices命令后会询问是否允许设备调试,确认之后再重新尝试命令。
示例中的unity版本:2018.1.9f1

Build System:
Internal(默认): unity内置的打包程序,只需要SDK的支持,但不能导出工程,APK所需的签名会要求在Player Settings界面中设置。
Gradle : 一般用于将UNITY工程导出为安卓工程,对安卓系统有更深的交互需求的时候才会使用到。
这两个选项影响都不大,Internal打包的时候会用到unity所配置的SDK,Gradle导出安卓工程后,在最终打包时SDK版本的不同会有影响,所以保证SDK版本一致即可。
Development Build:
开启调试模式,不勾不行。
Autoconnect Profiler:
自动开启Profiler,当用Build And Run打包,打完包后推送程序到手机上时会自动打开Profiler窗口。不勾的话可以自己去Window->Analysis->Profiler打开。
script Debugging:
调试script脚本用,勾上后可以在外部编译器中调试脚本代码
Run Device(Build And Run选项需要):
项目要运行的设备,第一步中ADB检测到的安卓设备都会在这里列出,这里选择你的安卓设备

最主要的是Company Name(公司名),Product Name(程序名),以及Package Name(包名)
Product Name或Package Name在下一步链接的时候会用到
部分安卓机子可能要调整这些参数(次要,只要能打出包来就不需要动这个参数)

Minimum API Level (最低兼容安卓API版本)
Target API Level(目标安卓API版本)
Target Architectures(安卓设备的架构)
下面讲的是只打包的情况,你可以通过Build And Run 跳过1、2小步,等待手机程序启动。
1、点击Build 将安卓包打包出来,并将其安装到你的安卓设备上
2、回到你的ADB目录下打开CMD,运行以下命令
adb forward tcp:34999 localabstract:Unity-com.test.test
其中 34999 可以改为任何你的电脑中空闲的端口号,com.test.test 改为第二步骤中提到的ProductName或者PackageName
该步骤是将你的手机程序与PC之间建立一个通讯通道,程序的Debug消息都会通过这个通道返回到Unity中
运行命令后,你就可以在Console界面和Profiler界面切换调试信息获取的对象

3、切换了信息获取的对象后,在安卓设备上运行你的程序,看能否获取到你的程序的信息。
1、Console界面和Profiler界面切换不了信息获取对象
可以尝试:1、确保防火墙没有禁用你的tcp端口,可以使用telnet命令访问这个端口,看能否接通
2、确保adb命令里面,你的ProductName或者PackageName填写正确
示例中使用的VS版本:VS2019 Community
该步骤并不需要第三步骤完成,理论上只要你的unity打包出Debug包就可以用VS进行断点调试
步骤:
1、VS安装unity调试组件
打开VS,在工具-》获取工具和功能 界面中勾选Unity模块

2, Unity设置调试工具
Edit->Preferences->External Tools 中External Script Editor中选择你的VS

3、链接你的程序
保持adb devices能够检测到你的设备,将unity打的包安装到你的设备上并运行。
回到VS,选择 调试-》附加Unity调试程序

在列出的项目中选择AndroidPlayer

如果成功的话调试程序就会运行,这时你就可以和平时一样调试程序了。
1、Unity实例中没有我的项目
可以尝试:(1) 确保adb devices能检测到你的设备。
(2) 确保是用Development Build打包出来的
2、选择Unity实例后编译器附加不上去
可以尝试:(1)重启unity
(2)重启adb服务
另外:VS的调试和Unity的调试是相互独立的,可以依照需求配合使用
示例中使用的模拟器:夜神模拟器
步骤:
1,打开模拟器里,安卓操作系统的USB调试选项
2,打开模拟器文件所在位置,寻找到该目录下的nox_adb.exe

提示:
nox_adb的版本需要与你打包APK所使用的adb版本一致;
先将打包使用的adb 覆盖nox_adb确保后续操作无误;
3,在导航栏中输入cmd,打开cmd窗口,并执行命令:
nox_adb.exe connect 127.0.0.1:62001

检查该adb所连接的程序:

4,运行你所导入到模拟器里面的APP,用VS附加Unity调试查看VS有无检测到调试接口

提示:如果想链接Unity可以直接按照【链接unity与安卓程序】操作
1、Unity实例中没有我的项目:
可以尝试:(1)检查电脑USB接口中有没有连到其他手机设备,如果有就断开
(2)nox_adb.exe devices 检测设备链接状态,如果是offlin 尝试
nox_adb.exe kill-server
2、nox_adb连接不上:
可以尝试:(1)检查nox_adb版本是否与打包所使用的adb版本一致
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r
刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr
我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类
GivenIamadumbprogrammerandIamusingrspecandIamusingsporkandIwanttodebug...mmm...let'ssaaay,aspecforPhone.那么,我应该把“require'ruby-debug'”行放在哪里,以便在phone_spec.rb的特定点停止处理?(我所要求的只是一个大而粗的箭头,即使是一个有挑战性的程序员也能看到:-3)我已经尝试了很多位置,除非我没有正确测试它们,否则会发生一些奇怪的事情:在spec_helper.rb中的以下位置:require'rubygems'require'spork'