Я столкнулся с проблемой, когда пытаюсь соединить свой файл Python с основным кодом Java моего приложения для Android в Android Studio ladybug 2024 с помощью плагина chaquopy.
Мотив моего Приложение состоит в том, чтобы щелкнуть фотографию или выбрать ее из галереи, а затем обработать изображение с помощью OpenCV в моем файле Python, а затем указать область объекта (яблоко) на изображении. Я создал функцию Python, которая будет принимать путь к изображению. , получите к нему доступ и верните результат в код основной активности Java. Он говорит, что произошла некоторая ошибка типа данных, поэтому он напрямую выполняет блок catch и печатает ошибку вместо желаемого результата.
Вот мой Java-код. Я новичок в разработке приложений для Android.
@SuppressLint("SetTextI18n")
private void processImage(Uri imageUri) {
try {
// Ensure Chaquopy is initialized
Python py = Python.getInstance();
// Get the Python module and call the method
PyObject pyModule = py.getModule("Calorie"); // The name of your Python file without .py
//String imageUriString = imageUri.toString();
String imagePath = getRealPathFromURI(imageUri);
PyObject pyResult = pyModule.callAttr("calculate_area_and_calories", imagePath); // Pass the image path
// Assuming your Python function returns a dictionary with keys "area" and "calories"
String area = String.valueOf(pyResult.asMap().get("area"));
String calories = String.valueOf(pyResult.asMap().get("calories"));
// Update the resultText with dynamic values
resultText.setText(String.format("Area: %s cm²\nCalories: %s kcal", area, calories));
//resultText.setText("Area: 100 cm²\nCalories: 52 kcal");
} catch (Exception e) {
// Handle any exceptions
//e.printStackTrace();
resultText.setText("Error processing image: " + e.getMessage() + "," + e.getCause());
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... oid-studio
Проблема при использовании chaquopy для подключения Python к Java в обновленной Android Studio Ladybug 2024. ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение