кто-нибудь, пожалуйста, помогите. спасибо.
я новичок в Android Studio.
цель: сделать приложение для более классного приложения с помощью проекта быстрого запуска Android.
пытается: заменить модель по умолчанию и метку в быстром запуске Androidпроект для моей модели и моего ярлыка.
env: win10, android studio 3.5.2, платформа SDK == Android9.0
статус:
- сделал 'make project' и 'run' на моем андроиде с помощью defaut quickstart project. (Никаких проблем не происходит. Приложение работает. Nice)
- добавил мою модель и мой ярлык в\ examples \ lite \ examples \ image_classification \ android \ app \ src \ main \ assets
- измените какой-нибудь скрипт, как показано ниже
- org / тензор потока / lite / examples /ification / tflite / ClassifierQuantizedMobileNet.javaС
return "mobilenet_v1_1.0_224_quant.tflite";
до
//return "mobilenet_v1_1.0_224_quant.tflite";
return "mymodel.tflite";
с
return "labels.txt";
до
return "mylabel.txt";
сделал проект Отладка приложения. установка выполнена успешно, но приложение остановлено в приведенном ниже коде ошибки
E/tensorflow: ClassifierActivity: No classifier on preview!
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.tensorflow.lite.examples.classification, PID: 31772
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.Bitmap.setPixels(int[], int, int, int, int, int, int)' on a null object reference
at org.tensorflow.lite.examples.classification.ClassifierActivity.processImage(ClassifierActivity.java:81)
at org.tensorflow.lite.examples.classification.CameraActivity.onPreviewFrame(CameraActivity.java:259)
at android.hardware.Camera$EventHandler.handleMessage(Camera.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:112)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7625)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
I/Process: Sending signal. PID: 31772 SIG: 9
Disconnected from the target VM, address: 'localhost:8600', transport: 'socket'
проблема решена.
причиной этой ошибки является несоответствие форм выходных данных моделии метка.
Я изменил форму вывода модели, и она работает хорошо.
спасибо