Сбой приложения на FroYo при запуске новой активности

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

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

Я написал макеты для 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 освобождено 23 КБ, 50 % свободно 2827 КБ/5639 КБ, внешнее 4681 КБ/5342 КБ, пауза 72 мс

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

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

07-11 11: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 % свободно 2973 КБ/6151 КБ, внешнее 1625 КБ/2137 КБ, пауза 7 мс+5 мс

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

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

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

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


person rabbitt    schedule 11.07.2011    source источник


Ответы (2)


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

person Jason Hanley    schedule 11.07.2011
comment
Я шел к этому, имея пункты меню, которые отображаются во всплывающем меню на устройствах ‹ Honeycomb, и располагая их на панели действий в Honeycomb. - person rabbitt; 11.07.2011

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

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

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

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

person Alex Gitelman    schedule 11.07.2011