Приложение не запускается при использовании библиотеки `com.android.future.usb.accessory`
Я следую это руководство, чтобы использовать библиотеку com.android.future.usb
в API 10.
Я сделал следующее:
- Установленные API Google 10 из диспетчера SDK:
![GoogleAPI10]()
- Выберите Google API 10 как мою цель сборки проекта:
![ProjectTarget]()
- Добавили их в
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
, как упоминалось здесь.
Это позволило мне использовать com.android.future.usb
и его подклассы. Но проблема в том, что приложение не будет запускаться после изменений в manifest
.
Это корневое устройство, и это приложение настраивается ОС для автоматического запуска при запуске устройства.
Должны ли я делать какие-либо другие настройки, чтобы сделать эту работу? Может быть, что-то должно быть сделано в прошивке?
изменить
Здесь logcat со всем, относящимся к usb
:
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
Ответы
Ответ 1
Не понятно, что вы подразумеваете под the application won't start
.
Если вы ожидаете, что приложение запустится automatically on device 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 из манифеста активности?