Аплодирую & PhoneGap на Android - PullRequest
5 голосов
/ 24 января 2012

Моя проблема касается разработки PhoneGap и Android с использованием плагина Eclipse Applaud.Я успешно загрузил и установил плагин Applaud.Я могу создать новый проект с помощью мастера Applaud (с помощью значка на панели инструментов Eclipse), и демо работает на устройстве нормально.Однако, когда я перезаписываю существующие файлы html & js (только main.js, а не phonegap.js), а затем собираю их на устройство, функциональность, не связанная с устройством, работает нормально (нажатия кнопок / обновление пользовательского интерфейса / etc), но команды PhoneGapвроде (device.version / device.platform / etc), похоже, не работает.

Я попытался подключить это к событию onDeviceReady, а также убедиться, что библиотека .jar включена, но я все еще имеюта же проблема.Так что я думаю, мой вопрос таков;При создании решения PhoneGap с использованием Applaud, Eclipse нужно компилировать и библиотеки, такие как PhoneGap?и если так, как кто-то может делать такие вещи?

Журнал ошибок:

01-24 14:59:44.567: W/KeyCharacterMap(5453): No keyboard for id 131074

01-24 14:59:44.567: W/KeyCharacterMap(5453): Using default keymap: /system/usr/keychars/qwerty.kcm.bin

01-24 14:59:59.917: I/Web Console(5453): Failed to run constructor: TypeError: object is not a function at file:///android_asset/www/resources/js/phonegap-1.3.0.js:210

01-24 14:59:59.927: I/Web Console(5453): Failed to run constructor: TypeError: Cannot read property 'capture' of undefined at file:///android_asset/www/resources/js/phonegap-1.3.0.js:210

01-24 14:59:59.927: I/Database(5453): sqlite returned: error code = 14, msg = cannot open file at source line 25467

01-24 15:00:00.057: D/dalvikvm(5453): GC_CONCURRENT freed 1185K, 55% free 3188K/6983K, external 2630K/2814K, paused 2ms+3ms

Ответы [ 2 ]

3 голосов
/ 25 января 2012

Итак, я вернулся и каким-то образом исправил возникшую проблему (скорее всего, по счастливой случайности).Когда я начинал этот проект, я думал, что лучшим подходом будет сделать это приложение максимально модульным;каждая функциональность (веб-запросы, чтение / запись файла и т. д.) должна быть отделена друг от друга.Таким образом, я создал множество отдельных js-файлов, каждый из которых был помечен соответствующим именем (сеть, устройство, язык и т. Д.), А затем включил их в мою страницу index.html, которая затем запускается с помощью phonegap.

InДля некоторых из этих файлов я выбрал следующий подход:

var Device = {
    // Returns the Device Name as a string.
    Name: function() {
        return window.device.name;
    }
};

В результате я мог получить доступ к этой функции с помощью оператора точки (который я предпочитаю).Однако в результате этого многие файлы полагались друг на друга, что затрудняло поиск моей проблемы.Потратив некоторое время на комментирование и снятие комментариев, кажется, я использовал комбинацию вышеуказанного подхода (оператор точки) и мой неправильный выбор соглашений об именах.Представленная выше реализация Device.Name(), кажется, (не совсем уверена в том, почему / как) конфликтует с библиотеками PhoneGap, что приводит к ошибкам js на устройстве.

После изменения указанного выше имени с «Device» на «Handset»"моя проблема ушла.Простое и, возможно, очевидное решение мучительного дня.

0 голосов
/ 24 января 2012

Я отвечу на ваш вопрос, но не думаю, что это ваша проблема:

Будет ли мастер AppLaud просто использовать phonegap.jar или пересобрать его компоненты, зависит от того, как вы используете создание проекта.wizard.

Если вы используете его «Встроенный PhoneGap» или указываете на загруженный официальный выпуск («Введите путь к установленному PhoneGap»), он будет просто указывать на phonegap.jar из этого выпуска.Если вы укажете на каталог с распакованной версией github PhoneGap, то phonegap.jar не будет использоваться, а исходные файлы PhoneGap Java будут встроены в ваш проект.Это облегчает отладку реализации PhoneGap.

Что касается вашей проблемы, то, скорее всего, у вас что-то не так с файлом index.html, например неправильная запись phonegap {...}. Js.Как говорится в комментариях ghostCoder, вам может потребоваться поделиться своим кодом, чтобы получить помощь по нему.

...