Доброе время суток. Уже кучу времени мучаюсь с проблемой подключения OpenCV для android в среду Intellij IDEA. Делала все по этой инструкции: https://habr.com/post/262089/. Она для Anroid Studio, но для IDEA я инструкции не нашла. Скачала с офф сайта последнюю версию OpenCV для android, скопировала папку java, добавила библиотеки в jniLibs, прописала зависимость от импортированного модуля. Поменяла циферки с версиями в AndroidManifest у импорт. модуля, но build.gradle -- который в инструкции тоже сказано поменять -- в папке java отсутствовал. Скопировала пример из той ссылки (то же самое, что и там): Activity:
package мой пакет;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.SurfaceView;
import android.view.WindowManager;
import org.opencv.android.CameraBridgeViewBase;
import org.opencv.android.OpenCVLoader;
import org.opencv.core.Mat;
import R из моего пакета;
public class ActivityOpenCVTest extends AppCompatActivity
implements CameraBridgeViewBase.CvCameraViewListener2
{
private CameraBridgeViewBase mOpenCvCameraView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_opencv_test);
mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.view);
mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE);
mOpenCvCameraView.setCvCameraViewListener(this);
}
@Override
public void onPause()
{
super.onPause();
if (mOpenCvCameraView != null)
mOpenCvCameraView.disableView();
}
@Override
public void onResume()
{
super.onResume();
OpenCVLoader.initDebug();
mOpenCvCameraView.enableView();
}
public void onDestroy() {
super.onDestroy();
if (mOpenCvCameraView != null)
mOpenCvCameraView.disableView();
}
public void onCameraViewStarted(int width, int height) {
}
public void onCameraViewStopped() {
}
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
return inputFrame.rgba();
}
}
Манифест:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="мой пакет"
android:versionCode = "13"
android:versionName = "1.5"
>
<supports-screens android:resizeable="true"
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true" />
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.camera.front" android:required="false"/>
<uses-feature android:name="android.hardware.camera.front.autofocus" android:required="false"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission-sdk-23 android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission-sdk-23 android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission-sdk-26 android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission-sdk-26 android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@drawable/..."
android:label="Мой заголовок"
android:roundIcon="@drawable/..."
android:supportsRtl="true"
android:theme = "@style/MyTheme"
>
<activity android:name="мой пакет.MainActivity"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
... всякие другие активности, включая рассматриваемую ActivityOpenCVTest
</application>
</manifest>
В итоге сборка прошла успешно, но выскочил Warning "Gradle: module '<этот модуль>' won't be compiled. Unfortunately you can't have non-Gradle Java module and Android-gradle module in one project"
. Плюс еще в манифесте импортированного модуля подчеркивается красным xmlns:android="http://schemas.android.com/apk/res/android"
а так же android versionCode и versionName
При попытке запустить на устройстве выдаются такие вот ошибки:
Error:(8, 26) error: package org.opencv.android does not exist
Error:(9, 26) error: package org.opencv.android does not exist
Error:(10, 23) error: package org.opencv.core does not exist
Error:(16, 40) error: package CameraBridgeViewBase does not exist
Error:(20, 12) error: cannot find symbol class CameraBridgeViewBase
Error:(62, 50) error: package CameraBridgeViewBase does not exist
Error:(62, 12) error: cannot find symbol class Mat
Error:(27, 30) error: cannot find symbol class CameraBridgeViewBase
Error:(46, 9) error: cannot find symbol variable OpenCVLoader
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
Очевидно, что модуль не может подключиться без gradle, но я не знаю, как грамотно сделать gradle-модуль из простого модуля в Intellij IDEA. Или как иначе импортировать библиотеку OpenCV. Пожалуйста, помогите решить эту проблему.
Скорее всего вы не импортировали opencv как gradle sub-module. В IDEA это тут: File - New - Module from existing source.. Как вариант попробуйте сразу подключить уже собранный модуль например отсюда https://github.com/steveliles/opencv-android
Виртуальный выделенный сервер (VDS) становится отличным выбором
Если нужно просто преобразовать массив байт в строку то можно попробовать так
Пытаюсь получить в приложении Android широту и долготу, но не получается даже запустить GPSПри попытки скомпилировать проект, получаю следующую...
Есть приложение под андроид которое выполняет простые радиолюбительские расчетыЗа последнюю неделю поймалось около десятка багов вида
Есть Телеграм бот на java, создан при помощи gradleПодскажите пожалуйста что мне нужно добавить в build