Integración de dependencias de Android Studio y Gradle
Estoy siguiendo este tutorial, pero con Android Studio. He realizado los siguientes pasos:
Creación de un nuevo proyecto en Android Studio
- Detección de características faciales con OpenCV Android
- Uso de OpenCV en Java Camera2 API
- Detección de señales de tráfico de velocidad OpenCV
- Gire la imagen en opencv dependiendo del ángulo de inclinación ...!
- Comparación de imágenes de OpenCV en Android
Agregar el OpenCV-2.4.5-sdk / sdk / java como un módulo
Hizo clic derecho en mi módulo principal-> Cambiar la configuración del módulo-> agregó el módulo opencv anterior como una dependencia
Para mi MainActivity utilicé el código siguiente (despojado de uno de los ejemplos):
package com.example.test; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.Menu; import org.opencv.android.BaseLoaderCallback; import org.opencv.android.CameraBridgeViewBase; import org.opencv.android.CameraBridgeViewBase.CvCameraViewListener; import org.opencv.android.LoaderCallbackInterface; import org.opencv.android.OpenCVLoader; import org.opencv.core.Mat; public class MainActivity extends Activity implements CvCameraViewListener { private CameraBridgeViewBase mOpenCvCameraView; private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: { Log.i("Yay", "OpenCV loaded successfully"); mOpenCvCameraView.enableView(); } break; default: { super.onManagerConnected(status); } break; } } }; @Override public void onResume() { super.onResume(); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_5, this, mLoaderCallback); } @Override public void onCameraViewStarted(int width, int height) { } @Override public void onCameraViewStopped() { } @Override public Mat onCameraFrame(Mat inputFrame) { return null; } }
El editor de texto de Android Studio podría identificar los paquetes que he importado (como org.opencv.android) pero cuando lo compilé recibí estos errores:
Gradle: error: package org.opencv.android does not exist Gradle: error: package org.opencv.android does not exist Gradle: error: package org.opencv.android.CameraBridgeViewBase does not exist
¿Alguien sabe por qué pasa esto?
- Cómo obtener Mat con una entrada drawable en Android usando OpenCV
- ¿Cuál es la diferencia entre `opencv.android.JavaCameraView` y` opencv.android.NativeCameraView`
- Visualización de imágenes y conversión a escala de grises - OpenCV para Android, API de Java
- ¿Debo usar JavaCV o la biblioteca Java de OpenCV en Android?
- Umbral adaptable rápido para Canny Edge Detector en Android
- Resolver avisos NDK obsoletos en Android Studio
- Segmentación de imágenes por color de fondo - OpenCV Android
- Android 4.2 ndk: error de carga de la biblioteca: load_library (linker.cpp: 750) || soinfo_link_image || libhoudini.so || opencv
Yo estaba teniendo un problema similar con mi Android Studio en OS X. Escribo el código, y Android Studio vería el archivo .jar que estaba haciendo referencia, y había declarado dependencias, pero cuando llegó el momento de Gradle para construir el proyecto, no ir.
Abrí el archivo 'build.gradle' y tuve que añadir manualmente dependencias. Por ejemplo, aquí está mi archivo completo:
buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') compile files('libs/gson-2.2.4.jar') compile files('libs/jsoup-1.7.2.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 16 } }
Como se puede adivinar, las líneas que he añadido son las que hacen referencia a Gson y Jsoup.
Inspirados por esta respuesta , estos son los pasos que hice:
- Coloque el archivo OpenCV 2.4.5 jar (en mi caso, 'opencv-library-2.4.5.jar') en la carpeta libs de su proyecto
- Haga clic derecho y seleccione Agregar como biblioteca
- Escriba esto en la parte de dependencias del archivo build.gradle :
compile files('libs/opencv-library-2.4.5.jar')
- Hacer una construcción limpia. Se puede hacer dentro del estudio de Android, pero también corrió el gradlew.bat incluido dentro de la carpeta del proyecto
Ahora, el proyecto debe ser construido y ejecutado muy bien.
Nota: En las versiones posteriores de OpenCV (por ejemplo, 2.4.7), la biblioteca se puede encontrar en ...\build\java
.
Me encontré con un problema similar.
En mi caso, Android Studio no pudo agregar la dependencia de Gradle para mí. Tuve que añadir yo mismo en el archivo gradle de mi proyecto:
Proyecto de compilación (": openCVLibrary2410")
Resolvió el problema. Espero que esto ayude.
Más reciente he resuelto el problema descrito anteriormente por:
- Haciendo clic derecho sobre el proyecto,
- Abrir los ajustes del módulo (F4)
- Abra el panel de pestañas de dependencias
- Haga clic en +, agregue la dependencia del módulo (con la opción de compilación)
Entonces todo funcionó bien. La biblioteca opencv es otro módulo en mi proyecto
He encontrado una solución y ahora todo está funcionando.
Tuve que construir un archivo Jar (openCV.jar) y luego lo agregé como una biblioteca en lugar de un módulo, finalmente en el archivo gradle.build He añadido esta línea
compile files('libs/openCV.jar')
.
Así que finalmente consigo usar el código de la biblioteca y mi compilación está bien.
No sé si esto es bueno. Pero así fue como lo hice. Espero eso ayude.
Tratar de añadir a la dependencia en Android Studio es infructuoso hay un error .
Prueba esto en su lugar:
-
Descargar OpenCV-2.4.5-android-sdk.zip desde el sitio OpenCV
-
Extraer a donde nunca como OpenCV-2.4.5-android-sdk, el mío pasó a ser
/home/anthony/Documents/OpenCV-2.4.5-android-sdk/
-
Abra IntelliJ y elija Importar
-
Seleccione la carpeta que desea importar
/home/anthony/Documents/OpenCV-2.4.5-android-sdk/sdk/java/
El tuyo será un poco diferente, no te preocupes, sólo tienes que elegir donde se extrajo OpenCV-2.4.5-android-sdk
-
Una vez finalizado el Asistente de importación, genere la aplicación con el menú
-
Construir -> Reconstruir proyecto
- Cerrar proyecto
- Crear nuevo o abrir un proyecto existente
- Entonces
Archivo-> Módulo de importación
- Esta vez seleccione
/home/anthony/Documents/OpenCV-2.4.5-android-sdk/sdk/java/XXX.iml
La mía era sdk.iml, pero la tuya podría ser cualquier cosa, pero sólo habrá una
Iml archivo
Ahora puede comenzar a usar las funciones de OpenCV, comience escribiendo
Org de importación.
Una vez que escriba el período IntelliJ debe dejar caer una lista de opciones, una de las cuales es
Opencv
El resto depende de usted.
En mi intellij IDE, i fijado de la siguiente manera:
– apunte a su aplicación (dentro de su proyecto) y haga clic en F4 (el ajuste de Módulos está enfocado por defecto)
– seleccione Android-Gradle
– seleccionar ficha Dependencias
– añadir (seleccionar + botón en la parte superior derecha) dependencia: puede seleccionar añadir por maven, archivo o … dependen de usted. En mi caso, agrego opencsv nuevo de maven.
– haga clic en Aceptar para finalizar, su proyecto se reconstruirá automáticamente.
HECHO.
- Cómo alinear el centro de la pestaña activa en Android Disposición de la pestaña deslizante
- Android: la barra de estado previene la pantalla completa