Нужна помощь в диагностике причины сбоя приложения Kivy для Android при запуске

#android #android-studio #kivy #kivymd #buildozer

Вопрос:

Я разработал приложение KivyMD, которое отлично работает на моей машине с Windows. Однако моя компания заблокировала все мои USB-порты, поэтому я не могу «развернуть» приложение для тестирования с помощью Buildozer. Вместо этого я использую Android Studio для эмуляции Android. Я могу установить свой файл APK (созданный с помощью Buildozer) на виртуальное устройство, но когда я запускаю приложение, я вижу только заставку Kivy, на которой на секунду появляется надпись «Загрузка…», а затем происходит сбой.

Android Studio предоставляет следующий журнал, но, насколько я могу судить, он не дает никакого представления о том, в чем проблема.

 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.facefinder, PID: 3493
    java.lang.RuntimeException: Unable to resume activity {com.example.facefinder/com.example.facefinder.MainActivity}:
java.lang.NullPointerException: Attempt to get length of null array
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4205)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4237)
        at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52)
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
     Caused by: java.lang.NullPointerException: Attempt to get length of null array
        at com.example.facefinder.MainActivity.onResume(MainActivity.java:81)
        at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1446)
        at android.app.Activity.performResume(Activity.java:7939)
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4195)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4237) 
        at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52) 
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) 
        at android.os.Handler.dispatchMessage(Handler.java:107) 
        at android.os.Looper.loop(Looper.java:214) 
        at android.app.ActivityThread.main(ActivityThread.java:7356) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
 

Что я могу сделать, чтобы диагностировать свою проблему? Заранее спасибо за любые рекомендации!

Комментарии:

1. @blackapps Спасибо, что нашли время помочь мне. Я отредактировал свой пост, чтобы журнал был более читабельным.

2. java.lang.NullPointerException: Attempt to get length of null array Ну, где-то в вашем коде вы пытаетесь использовать длину массива (возможно, в цикле), но у вас нет массива. Ваш указатель/переменная массива имеет значение null.

3. ваш журнал не включает журнал python !! его трудно обнаружить, обратная связь будет лучше использоваться adb logcat *:S python:D для отладки приложения kivy

4. @HussamF. Алкдари, спасибо, что взглянул на мою проблему. Как я уже говорил в своем первоначальном посте, этот журнал был создан Android Studio, потому что у меня нет средств для развертывания моего приложения Kivy с помощью Buildozer. Поэтому я пытаюсь запустить APK-файл, созданный Buildozer на эмулируемом устройстве Android, и я получил журнал, опубликованный выше. Что я узнал, так это то, что разработка Kivy для Android должна выполняться с развертыванием с помощью Buildozer. Иначе ты летишь вслепую. Это сложно для меня, так как я использую WSL, который не поддерживает подключение USB-устройств.

5. в этом случае ваш журнал java EXCEPTION Я не могу помочь с этим, так как я не java-разработчик, поэтому для решения этой проблемы вам нужен java-разработчик, который расскажет вам, почему это произошло, и kivy dev, чтобы рассказать вам, как вы можете исправить это в своем коде, в качестве предложения вы можете добавить java хэштег к своему вопросу