Приложение зависает на FroYo при запуске новой активности - PullRequest
0 голосов
/ 11 июля 2011

Я пишу приложение для Android для устройств 2.1 Froyo> 3.1 Honeycomb.

Я делал это с помощью классов для Java, предназначенных для всех платформ и имеющих разные макеты в зависимости от экрана.size, это правильный путь?

Я написал макеты для Honeycomb, и я только начал внедрять и тестировать на Froyo (мое другое устройство), и я не могу запустить ни одно издругие действия на Froyo или Gingerbread (эмулятор) без сбоев, но они отлично работают на Honeycomb.

Вот LogCat для сбоя:

07-11 11:17:51.832: INFO / ActivityManager (75): Отображается com.squirculardesign.android.pixel / .Main: + 6s867ms (всего + 24s424ms)

07-11 11: 17: 57.063: DEBUG / dalvikvm (223):GC_EXPLICIT освобожден 23K, 50% свободен 2827K / 5639K, внешний 4681K / 5342K, приостановлен 72мс

07-11 11: 18: 21.743: DEBUG / dalvikvm (75): GC_CONCURRENT освобожден 1299K, 59% бесплатно 4249K / 10247K, внешний 3520K / 3903K, пауза 8 мс + 55 мс

07-11 11: 18: 39.642: WARN / KeyCharacterMap (458): нет клавиатуры для идентификатора 0

07-11 11: 18: 39.642: WARN /KeyCharacterMap (458): использование таблицы ключей по умолчанию: /system/usr/keychars/qwerty.kcm.bin

07-11 11: 18: 40.064: WARN / InputManagerService (75): окно уже сфокусировано, игнорируя усиление фокусаиз: com.android.internal.view.IInputMethodClient$Stub$Proxy@4067db20

07-11 11: 18: 51.223: INFO / ActivityManager (75): Запуск: Intent {cmp = com.squirculardesign.android.pixel / .Calculator_CaptureOriented} из pid 458

07-11 11: 18: 51.543: INFO / dalvikvm (75): Jit: изменение размера JitTable с 1024 до 2048

07-11 11:18: 51.623: INFO / dalvikvm (458): не удалось найти метод com.squirculardesign.android.pixel.Calculator_CaptureOriented.getActionBar, на который ссылается метод com.squirculardesign.android.pixel.Calculator_CaptureOriented.onStart

* 102711: 18: 51.643: WARN / dalvikvm (458): VFY: невозможно разрешить виртуальный метод 77: Lcom / squirculardesign / android / pixel / Calculator_CaptureOriented; .getActionBar () Landroid / app / ActionBar;

07-11 11: 18: 51.643: DEBUG / dalvikvm (458): VFY: замена кода операции 0x6e при 0x0003

07-11 11: 18: 51.643: DEBUG / dalvikvm (458): VFY: мертвый код 0x0006-000b в Lcom / squirculardesign / android / pixel / Calculator_CaptureOriented; .onStart () V

07-11 11: 18: 51.773: WARN / ResourceType (458): сбой при получении записи для 0x7f030002 (t = 2 e = 2) в пакете 0 (ошибка -75)

07-11 11: 19: 01.282:WARN / ActivityManager (75): Тайм-аут простоя активности для HistoryRecord {40554050 com.squirculardesign.android.pixel / .Calculator_CaptureOriented}

07-11 11: 19: 22.253: DEBUG / dalvikvm (153): GC_CONCURRENT освобожден 503, 52% свободных 2973K / 6151K, внешние 1625K / 2137K, пауза 7 мс + 5 мс

07-11 11: 20: 23.573: DEBUG / SntpClient (75): ошибка запроса: java.net.SocketException: Addressсемейство не поддерживается протоколом

07-11 11: 25: 23.583: DEBUG / SntpClient (75): время запроса не выполнено: java.net.SocketException: семейство адресов не поддерживается протоколом

Я думаю (я не уверен), что это как-то связано с ActionBar.Кто-нибудь может указать, в чем проблема и как ее исправить?

Спасибо за любую помощь и хорошего дня.

Ответы [ 2 ]

4 голосов
/ 11 июля 2011

Метод Activity.getActionBar не существует до Honeycomb.Но в более общем плане вам нужно будет скопировать функциональность, имеющуюся на панели действий, для устройств, предшествующих Honeycomb, поскольку для них она не существует.

2 голосов
/ 11 июля 2011

Скорее всего, вы использовали API, специфичные для Honeycomb, и они не работают на Froyo.Если вы нацелены как на Froyo, так и на Honeycomb, я предлагаю вам начать с самого низкого API (то есть Froyo).

Я делал это с помощью классов для Java, которые должны быть для всех платформ.и имея разные макеты в зависимости от размера экрана, это правильный путь?

Да, это правильный способ сделать это (разные разрешения, если быть точным).Просто убедитесь, что вы используете API-интерфейсы, совместимые со всеми поддерживаемыми уровнями Android.

Наконец, ваш журнал не показывает ошибок.Найдите что-то, что содержит ERROR и / или трассировку стека.

...