#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
для отладки приложения kivy4. @HussamF. Алкдари, спасибо, что взглянул на мою проблему. Как я уже говорил в своем первоначальном посте, этот журнал был создан Android Studio, потому что у меня нет средств для развертывания моего приложения Kivy с помощью Buildozer. Поэтому я пытаюсь запустить APK-файл, созданный Buildozer на эмулируемом устройстве Android, и я получил журнал, опубликованный выше. Что я узнал, так это то, что разработка Kivy для Android должна выполняться с развертыванием с помощью Buildozer. Иначе ты летишь вслепую. Это сложно для меня, так как я использую WSL, который не поддерживает подключение USB-устройств.
5. в этом случае ваш журнал
java EXCEPTION
Я не могу помочь с этим, так как я не java-разработчик, поэтому для решения этой проблемы вам нужен java-разработчик, который расскажет вам, почему это произошло, и kivy dev, чтобы рассказать вам, как вы можете исправить это в своем коде, в качестве предложения вы можете добавитьjava
хэштег к своему вопросу