Приложение настроек Android 8 аварийно завершает работу на эмуляторе с чистой сборкой AOSP

Приложение «Настройки» вылетает сразу после открытия чистой сборки Android 8 (aosp_x86-eng) на эмуляторе. logcat вывод ниже:

--------- beginning of main
1536  1550 E memtrack: Couldn't load memtrack module
1536  1550 W android.os.Debug: failed to get memory consumption info: -1
--------- beginning of system
1536  1548 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.settings/.Settings (has extras)} from uid 10013
1373  2321 W audio_hw_generic: Not supplying enough data to HAL, expected position 926726 , only wrote 926722
2477  2477 W zygote  : Unexpected CPU variant for X86 using defaults: x86
1536  1548 I ActivityManager: Start proc 2477:com.android.settings/1000 for activity com.android.settings/.Settings
2477  2477 I zygote  : The ClassLoaderContext is a special shared library.
2477  2477 D OpenGLRenderer: HWUI GL Pipeline
2477  2477 W TileUtils: Found com.android.settings.backup.BackupSettingsActivity for intent Intent { act=com.android.settings.action.SETTINGS pkg=com.android.settings } missing metadata com.android.settings.category
2477  2477 D ConditionManager: conditions loading asychronously
2477  2496 D ConditionManager: loading conditions from xml
2477  2495 E BluetoothAdapter: Bluetooth binder is null
2477  2495 V NFC     : this device does not have NFC support
1388  1836 E SurfaceFlinger: ro.sf.lcd_density must be defined as a build property
2477  2500 D SuggestionParser: Day 0 for com.android.settings.suggested.category.FIRST_IMPRESSION
2477  2495 D BatteryInfo: time to make batteryStatsHelper: 1ms
1536  1554 I WifiService: requestActivityInfo uid=1000
1536  1554 I WifiService: reportActivityInfo uid=1000
1536  1554 I WifiService: getSupportedFeatures uid=1000
1536  1606 W HalDeviceManager: isWifiStarted called but mWifi is null!?
2477  2500 I SuggestionParser: Use fingerprint requires unavailable feature android.hardware.fingerprint
1536  1554 E BluetoothAdapter: Bluetooth binder is null
1536  1554 E BatteryExternalStatsWorker: no controller energy info supplied for wifi
1536  1554 E KernelCpuSpeedReader: Failed to read cpu-freq: /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state (No such file or directory)
1536  1554 E BatteryExternalStatsWorker: modem info is invalid: ModemActivityInfo{ mTimestamp=0 mSleepTimeMs=0 mIdleTimeMs=0 mTxTimeMs[]=[0, 0, 0, 0, 0] mRxTimeMs=0 mEnergyUsed=0}
2477  2500 I SuggestionParser: Add another fingerprint requires unavailable feature android.hardware.fingerprint
2477  2495 D BatteryInfo: time for getStats: 10ms
2477  2500 W TileUtils: Found com.android.settings.backup.BackupSettingsActivity for intent Intent { act=com.android.settings.action.SETTINGS pkg=com.android.settings } missing metadata com.android.settings.category
1643  1852 D EGL_emulation: eglMakeCurrent: 0x945dab60: ver 2 0 (tinfo 0x945e4970)
1380  1380 D gralloc_ranchu: gralloc_alloc: Creating ashmem region of size 1540096
1380  1525 D gralloc_ranchu: gralloc_alloc: Creating ashmem region of size 1540096
2477  2499 D         : HostConnection::get() New Host Connection established 0xa750eb00, tid 2499
2477  2499 I zygote  : android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
2477  2499 I OpenGLRenderer: Initialized EGL, version 1.4
2477  2499 D OpenGLRenderer: Swap behavior 1
2477  2500 E SystemServiceRegistry: No service published for: wifip2p
2477  2500 E SystemServiceRegistry: android.os.ServiceManager$ServiceNotFoundException: No service published for: wifip2p
2477  2500 E SystemServiceRegistry:     at android.os.ServiceManager.getServiceOrThrow(ServiceManager.java:75)
2477  2500 E SystemServiceRegistry:     at android.app.SystemServiceRegistry$49.createService(SystemServiceRegistry.java:569)
2477  2500 E SystemServiceRegistry:     at android.app.SystemServiceRegistry$49.createService(SystemServiceRegistry.java:567)
2477  2500 E SystemServiceRegistry:     at android.app.SystemServiceRegistry$StaticServiceFetcher.getService(SystemServiceRegistry.java:987)
2477  2500 E SystemServiceRegistry:     at android.app.SystemServiceRegistry.getSystemService(SystemServiceRegistry.java:914)
2477  2500 E SystemServiceRegistry:     at android.app.ContextImpl.getSystemService(ContextImpl.java:1667)
2477  2500 E SystemServiceRegistry:     at android.view.ContextThemeWrapper.getSystemService(ContextThemeWrapper.java:171)
2477  2500 E SystemServiceRegistry:     at android.app.Activity.getSystemService(Activity.java:5915)
2477  2500 E SystemServiceRegistry:     at com.android.settings.wfd.WifiDisplaySettings.isAvailable(WifiDisplaySettings.java:216)
2477  2500 E SystemServiceRegistry:     at com.android.settings.SettingsActivity.doUpdateTilesList(SettingsActivity.java:845)
2477  2500 E SystemServiceRegistry:     at com.android.settings.SettingsActivity.-wrap0(Unknown Source:0)
2477  2500 E SystemServiceRegistry:     at com.android.settings.SettingsActivity$5.run(SettingsActivity.java:747)
2477  2500 E SystemServiceRegistry:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
2477  2500 E SystemServiceRegistry:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
2477  2500 E SystemServiceRegistry:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
2477  2500 E SystemServiceRegistry:     at java.lang.Thread.run(Thread.java:764)
1536  1548 W ActivityManager:   Force finishing activity com.android.settings/.Settings
1536  1552 I ActivityManager: Showing crash dialog for package com.android.settings u0

Кажется, сбой как-то связан с WiFi, но эмулятор Android все равно не должен иметь поддержку WiFi. В чем тут может быть дело?


person Thunderbeef    schedule 15.12.2017    source источник
comment
Вы пытались запустить это приложение на реальном телефоне Android?   -  person user1850484    schedule 16.12.2017
comment
@user1850484 user1850484 Это не внешнее автономное приложение. Настройки - это часть прошивки. Вы не можете запустить его на другом устройстве.   -  person Thunderbeef    schedule 16.12.2017


Ответы (3)


Мне удалось исправить это самостоятельно. Проблема, похоже, связана с тем, что com.android.settings.wfd.WifiDisplaySettings.isAvailable сообщает, что Wi-Fi доступен, а wifip2p услуга отсутствует. Я пошел к WifiDisplaySettings.java:216 и заменил этот чек на false, чтобы он не пытался найти службу. Теперь настройки можно открыть правильно.

person Thunderbeef    schedule 16.12.2017
comment
Итак, чтобы исправить мой эмулятор, мне нужно изменить и скомпилировать исходники AOSP и использовать собственный образ? - person Andrzej Zabost; 20.07.2018
comment
@Thunderbeef, где вообще находится этот файл: com.android.settings.wfd.WifiDisplaySettings.isAvailable - person Daniel; 27.08.2019

Измените свой WifiDisplaySettings.java в

/YoutAospRoot/packages/apps/Settings/src/com/android/settings/wfd/WifiDisplaySettings.java

Изменить фрагмент кода

public static boolean isAvailable(Context context) {
        return context.getSystemService(Context.DISPLAY_SERVICE) != null
                && context.getSystemService(Context.WIFI_P2P_SERVICE) != null;
}

To

public static boolean isAvailable(Context context) {
    return false;
}

Затем

make systemimage 
person i love jack    schedule 19.11.2018

Может быть, это тоже может помочь. Я заметил, что приложение «Настройки» не падает при сборке чистого Android 8 с lunch aosp_x86-userdebug вместо lunch aosp_x86-eng.

person michelle    schedule 25.01.2019