使用“com.android.future.usb.accessory”库时应用程序无法启动
Posted
技术标签:
【中文标题】使用“com.android.future.usb.accessory”库时应用程序无法启动【英文标题】:Application won't start when using `com.android.future.usb.accessory` library 【发布时间】:2016-01-02 22:36:59 【问题描述】:我正在关注 this guide 在 API 10 上使用 com.android.future.usb
库。
我做了以下事情:
从 SDK 管理器安装了 Google API 10: 选择 Google APIs 10 作为我的项目构建目标: 将这些添加到manifest
:
<uses-feature android:name="android.hardware.usb.accessory" />
(<manifest>
的直子)
<uses-library android:name="com.android.future.usb.accessory" />
(<application>
的孩子)
<meta-data android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
android:resource="@xml/accessory_filter" />
(第一个activity
的孩子)
res/xml/accessory_filter.xml
,如上所述here。
这样做让我可以使用com.android.future.usb
及其子类。但问题是manifest
更改后应用程序无法启动。
这是一个有根设备,并且该应用程序由操作系统配置为在设备启动时自动启动。
我应该做任何其他配置来完成这项工作吗?也许应该在固件中做点什么?
编辑:
这里是与 usb
相关的所有内容的 logcat:
USB mass storage support is not enabled in the kernerl
usb_configuration switch is not enabled in the kernerl
Volume usb state changing -1 (Initializing) -> 0 (No-Media)
Ignoring unknown switch 'usb_connected'
Package com.example.gui requires unavailable shared library com.android.future.usb.accessory: failing!
Skipping unknown volume '/mnt/usb'
USB Service
This kernel does not have USB configuration switch support
【问题讨论】:
But the problem is the application won't start after the changes in manifest.
请说明您遇到的错误并将您的 logcat 粘贴到此处。
【参考方案1】:
不清楚the application won't start
是什么意思。
如果您希望应用程序启动 automatically on device startup
。这有这样做的说明:How to start an Application on startup?
如果问题是应用程序无法编译,则需要有关遇到的错误的更多信息。
您提到您根据您提供的链接对清单进行了更改。该示例还包括一个intent-filter
标记到清单中的活动元素,您没有提及。因此清单中的活动元素将有两个意图过滤器:
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
android:resource="@xml/accessory_filter" />
</activity>
那么,您的应用程序未启动可能是因为您从活动清单中删除了 MAIN / LAUNCHER 意图过滤器?
【讨论】:
正如我所说的“应用程序不会在清单中的更改之后启动 。”这意味着,应用程序用于在更改之前启动。因此,链接“如何在启动时启动应用程序”是不相关的。 启动应用程序不需要意图。意图只是等待操作('usb_attached')。不,我没有删除主要意图......以上是关于使用“com.android.future.usb.accessory”库时应用程序无法启动的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?
Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)