我有一个ADK Kit from Google I/O 2011,我正在努力让示例应用程序正常运行(可在此处获取:http://developer.android.com/tools/adk/adk.html)。
我已根据指示对固件和设备进行了编程,但无法使演示正常工作。应用程序启动,并在插入时检测ADK板,但随后进入设备连接的循环,然后非常快速地断开连接,导致UI活动继续重新启动。
我已经调试了几天了,并且验证了设备在DemoKitActivity.java的run()方法中获得了IOException,导致线程终止,但我不确定这是否是由或设备断开的原因。
抛出的异常是:
06-27 23:21:51.284: E/DemoKit(13573): There was an IO Exception
06-27 23:21:51.284: E/DemoKit(13573): at libcore.io.IoBridge.read(IoBridge.java:435)
06-27 23:21:51.284: E/DemoKit(13573): at java.io.FileInputStream.read(FileInputStream.java:179)
06-27 23:21:51.284: E/DemoKit(13573): at java.io.InputStream.read(InputStream.java:163)
06-27 23:21:51.284: E/DemoKit(13573): at com.google.android.DemoKit.DemoKitActivity.run(DemoKitActivity.java:278)
06-27 23:21:51.284: E/DemoKit(13573): at java.lang.Thread.run(Thread.java:841)
06-27 23:21:51.284: E/DemoKit(13573): Caused by: libcore.io.ErrnoException: read failed: EIO (I/O error)
06-27 23:21:51.284: E/DemoKit(13573): at libcore.io.Posix.readBytes(Native Method)
06-27 23:21:51.284: E/DemoKit(13573): at libcore.io.Posix.read(Posix.java:127)
06-27 23:21:51.284: E/DemoKit(13573): at libcore.io.BlockGuardOs.read(BlockGuardOs.java:149)
06-27 23:21:51.284: E/DemoKit(13573): at libcore.io.IoBridge.read(IoBridge.java:425)
一个可能的怪癖是我的设备设置为通过PTP进行通信(设置>存储>菜单> USB计算机连接>相机(PTP)。
我还没有更多信息。我希望有人可以确认Google提供的示例代码仍然可以与ADK一起使用,或者可以提供一些深入了解调试断开连接的下一步的信息。
答案 0 :(得分:0)
我可以确认示例ADK代码适用于运行4.2.1的Nexus 4和运行4.0.4的Galaxy Nexus。
我已经尝试使用Gingerbread兼容性API并成功使用Android DemoKit应用程序上的API 12类。
我最近没有使用过的ADK 2011主板,所以当它与ICS(4.0.4)设备一起工作时,它不能与带有JB的Nexus 4一起使用。
以下SO主题介绍了JB的问题: ADK 1.0 devices fail to work with Jelly Bean, why?
此外,CapSense库已在Arduino网站的最新下载中重命名。 CapSense.h成为CapacitorSensor.h等等。
否则我可以将新代码安装到Arduino ADK板上,在Android设备上安装应用程序并运行DemoKit应用程序。
在我的测试中,Nexus 4也处于PTP模式,所以我不认为这是你的问题。
我还假设您通过wi-fi通过adb获取日志,而不是通过USB连接它,因为该电缆应该进入ADK板。除了确保ADK代码正确并且可能使用不同的USB电缆或PC进行尝试之外,我没有任何建议。虽然我确实在一个测试会话的日志中看到了一些错误,但是ADK和app的重置将其清除。这里的参考是我的logcat来自工作会议,希望它可以提供帮助。
07-06 23:01:02.364 I/ActivityManager( 575): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.google.android.DemoKit/.DemoKitLaunch} from pid 899
07-06 23:01:02.404 I/ActivityManager( 575): Start proc com.google.android.DemoKit for activity com.google.android.DemoKit/.DemoKitLaunch: pid=8715 uid=10110 gids={50110, 1028}
07-06 23:01:02.495 I/DemoKitLaunch( 8715): starting phone ui
07-06 23:01:02.925 D/DemoKit ( 8715): accessory opened
07-06 23:01:03.185 I/ActivityManager( 575): Displayed com.google.android.DemoKit/.DemoKitPhone: +692ms (total +795ms)
07-06 23:01:35.690 D/UsbDeviceManager( 575): entering USB accessory mode: UsbAccessory[mManufacturer=Google, Inc., mModel=DemoKit, mDescription=DemoKit Arduino Board, mVersion=1.0, mUri=http://www.android.com, mSerial=0000000012345678]
07-06 23:01:35.690 I/ActivityManager( 575): START u0 {flg=0x10000000 cmp=com.android.systemui/.usb.UsbConfirmActivity (has extras)} from pid 575
07-06 23:01:35.860 I/ActivityManager( 575): Displayed com.android.systemui/.usb.UsbConfirmActivity: +64ms
07-06 23:01:37.782 I/ActivityManager( 575): START u0 {act=android.hardware.usb.action.USB_ACCESSORY_ATTACHED flg=0x10000000 cmp=com.google.android.DemoKit/.UsbAccessoryActivity (has extras)} from pid 748
07-06 23:01:37.912 I/DemoKitLaunch( 8715): starting phone ui
07-06 23:01:37.912 I/ActivityManager( 575): START u0 {flg=0x14000000 cmp=com.google.android.DemoKit/.DemoKitPhone} from pid 8715
07-06 23:01:38.022 D/DemoKit ( 8715): accessory opened