Приложение Flex mobile 4.6 работает во Flash Builder, но не в эмуляторе Android - PullRequest
1 голос
/ 29 декабря 2011

У меня есть базовое приложение flex mobile 4.6, и оно прекрасно работает во встроенном эмуляторе Flash Builder с использованием профиля устройства Android, такого как aria ...

Он также хорошо запускается в эмуляторе Android, но один конкретный вид показывает пустым (и этот вид отлично работает в Flash Builder).

Прежде чем я углублюсь во многие детали представления, есть ли какие-то категорические ошибки, которые могут быть причиной этого?

Я не могу заставить операторы трассировки показывать в adb logcat. Кажется, мне нужно скомпилировать отладочную версию apk, но я не знаю, как это сделать. Я использую «Экспорт сборки выпуска» из меню «Проект» во Flash Builder, и у него нет опции debug = true.

Проблемное / пустое представление в основном использует stagewebview и библиотеку oauth iotashan для вызова linkedin rest apis ... Другое (и работающее) представление может сделать спокойные вызовы веб-службы в эмуляторе хорошими, поэтому, похоже, это не так интернет-разрешение.

Исходный код, содержащийся в проблемном / пустом виде, практически идентичен учебнику, найденному по адресу: http://www.riagora.com/2011/01/air-and-linkedin/

Различия: а) Корневой тег является представлением б) я использую StageWebView вместо HtmlContainer c) Я использую свой собственный ключ и токены для мыши.

Буду признателен, если кто-нибудь подскажет мне, как устранить эту ситуацию. Возможно, кто-то может сказать мне, как отлаживать приложение во время работы в эмуляторе (я думаю, что для этого мне нужны правильные аргументы команды adt, которые соответствуют меню «Export Release Build», но добавляют параметр отладки?)

Спасибо за вашу помощь заранее.

========================================

Комментарий добавлен после дополнительной отладки:

ОК - через некоторое профилирование Fiddler я наблюдаю, что http-туннель, созданный для api.linkedin.com:443 при отладке внутри FlashBuilder и внутри эмулятора Android, отличается. В частности, следующие две строки кода создают разные заголовки HTTP: var request: OAuthRequest = new OAuthRequest ("GET", requestTokenUrl, {oauth_callback: 'http://www.xyz123.com'}, потребитель, ноль); Loader.load (URLRequest);

В то время как во Flashbuilder URLLoader, похоже, создает запрос с соответствующими заголовками, такими как Host: api.linkedin.com: 443, Content-Length: 0, Connection: Keep-Alive и т. Д., Внутри эмулятора Android есть только один заголовок Хост: 216.52.242.83:443.

С какой стати это случилось?

...