joinposter / device-platform-example

Intro app to show how device and POS platform works together
0 stars 0 forks source link

Проблема с настройкой Device платформы: приложение открывается и сразу же останавливается #4

Open dmitriiPopov opened 4 years ago

dmitriiPopov commented 4 years ago

Есть проблема с запуском приложения на Андроид. https://dev.joinposter.com/docs/v3/device/setup

1) скачал example-приложение на Kotlin (в скачанном приложении код в MainActivity.kt отличается от кода в примере тут) 2) Подставил существующий APP_ID в MainActivity.kt 2) запустил на Android-устройстве 3) приложение открывается и тут же останавливается

Запускал через Android Studio на virtual device с версией Android 9.0 и на смартфоне с версией 8.1. Одинаковая проблема.

Вот trace с ошибкой при запуске на виртуальном девайсе:

11/21 14:21:55: Launching 'app' on Pixel C API 28.
$ adb shell am start -n "com.example.posterpos.myapplication/com.example.posterpos.myapplication.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Waiting for process to come online...
Connected to process 6528 on device 'emulator-5554'.
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
I/s.myapplicatio: The ClassLoaderContext is a special shared library.
W/s.myapplicatio: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection)
W/s.myapplicatio: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection)
D/OpenGLRenderer: Skia GL Pipeline
W/SocketService: onStartCommand
D/HostConnection: HostConnection::get() New Host Connection established 0xe9d1e2d0, tid 6575
D/HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_dma_v1 ANDROID_EMU_YUV420_888_to_NV21 ANDROID_EMU_YUV_Cache GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_gles_max_version_3_0 
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.posterpos.myapplication, PID: 6528
    android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service notification: Notification(channel=null pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x40 color=0x00000000 vis=PRIVATE)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1737)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0
I/OpenGLRenderer: Initialized EGL, version 1.4
D/OpenGLRenderer: Swap behavior 1
W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
D/OpenGLRenderer: Swap behavior 0
D/eglCodecCommon: setVertexArrayObject: set vao to 0 (0) 0 0
D/EGL_emulation: eglCreateContext: 0xe9d05180: maj 3 min 0 rcv 3
D/EGL_emulation: eglMakeCurrent: 0xe9d05180: ver 3 0 (tinfo 0xe9d036b0)
I/Process: Sending signal. PID: 6528 SIG: 9
Process 6528 terminated.

UPD: на версиях <8.0 такой проблемы нет.

Catzoy commented 4 years ago

@dmitriiPopov Здравствуйте, проблема вызвана тем, что для показа нотификации о работе приложения на Андроид 8.1 и выше требуется дополнительное разрешение "android.permission.FOREGROUND_SERVICE". Добавьте, пожалуйста, его в Андроид Манифест и падения должны прекратиться на указанных платформах.

Также, в связи с багом обнаружили, что не передавалась в эту нотификацию имя приложения, поэтому, пожалуйста, скачайте последнюю версию библиотеки.