Мои проблемы вопроса с помощью aidl.exe (в системе Windows) из командной строки. Этот вопрос не имеет никакого отношения к Eclipse, Netbeans, и т.д.
Включенный с SDK Android следующие три файла определения AIDL:
IRemoteService.aidl IRemoteServiceCallback.aidl ISecondary.aidl
расположенный в следующем каталоге:
C:\android-sdk-windows\platforms\android-2.1\samples\ApiDemos\src\com\example\android\apis\app
Ради простоты я скопировал aidl.exe в вышеупомянутый каталог. Затем из консоли я успешно использовал следующие две команды для генерации .java файлов:
C:\Android-project\ApiDemos\src\com\example\android\apis\app> aidl IRemoteServiceCallback.aidl C:\Android-project\ApiDemos\src\com\example\android\apis\app> aidl ISecondary.aidl
Вызов этих команд произвел файлы IRemoteServiceCallback.java и ISecondary.java, соответственно. Пока неплохо.
Я отмечаю, что оба .aidl файлы просты; они не включают операторов 'импорта'.
Остающийся .aidl файл, IRemoteService.aidl, действительно включает следующего оператора импорта в строку 19:
импорт com.example.android.apis.app. IRemoteServiceCallback;
Проблема возникает, когда я выполняю инструмент AIDL на этом файле:
C:\Android-project\ApiDemos\src\com\example\android\apis\app>aidl IRemoteService.aidl
Выполнение так заставляет следующее сообщение об ошибке быть распечатанным в консоли:
IRemoteService.aidl:19: не мог найти импорт для класса com.example.android.apis.app. IRemoteServiceCallback
Инструмент AIDL очевидно не мог определить местоположение файла IRemoteServiceCallback.aidl в том же каталоге, в котором он работал. Согласно сообщению "использования" инструмента AIDL, существует команда, которая, по-видимому, может использоваться для разрешения этой проблемы:
-I<DIR> search path for import statements.
Проблема: Я не был в состоянии определить-I таким способом как, чтобы избежать, чтобы сообщение об ошибке и иметь инструмент AIDL генерировало .java файл из .aidl файла с оператором 'импорта'. (Отметьте: Я установил переменную среды Windows 'путь' к моему текущему каталогу.) Вот несколько изменений, которые я попробовал:
-Ic:\com\example\android\apis\app
-Ic:/com/example/android/apis/app
-I.\
-I.
Я должен пропускать что-то простое. Удивительно, даже при том, что я видел изменения этого вопроса, отправленного в различных местах, я должен все же видеть ответ или любую документацию об использовании командной строки AIDL (кроме информации об ИСПОЛЬЗОВАНИИ aidl.exe). Может кто-то подсказка меня в?
Спасибо, матовое
Вы должны указать путь к папке с исходными файлами, но БЕЗ пути после базовой папки src. Итак, в вашем случае правильная команда:
C:\Android-project\ApiDemos\src\com\example\android\apis\app>aidl -IC:\Android-project\ApiDemos\src\ IRemoteService.aidl
Вы можете получить Zephyr . Никогда не использовал его сам, я просто знаю, что это в основном для приложений AJAX.
-121--4013051-Это можно сделать несколькими способами. Я не собираюсь углубляться, так как на эту тему много литературы.
SHA256
, чтобы уменьшить вероятность столкновений. YOURSALT123.123.123.123USERNAMEPASSWORD
. Все зависит от того, насколько безопасно вам нужно . Веб-сайт сообщества о lolcats имеет другие требования безопасности по сравнению с банковским веб-сайтом.
-121--1672127-Как вы упоминаете, документации не так много.
Поэтому, если вы включите подробный вывод сборки в Eclipse (в разделе Окно > Настройки > Android > Сборка, я думаю), вы можете увидеть в консоли, какие команды, включая aidl
и aapt
, выполняются, когда плагин Eclipse выполняет сборку.
Если вы понимаете C, вы можете проверить исходный код aidl в AOSP.