Android Studio 和 Gradle 依赖集成

标签 android opencv android-studio gradle dependencies

我正在关注 this tutorial但使用 Android Studio。我已经完成了以下步骤:

在 Android Studio 中创建一个新项目

将 OpenCV-2.4.5-sdk/sdk/java 添加为模块

右击我的主模块->Change Module settings->添加上面的opencv模块作为依赖

对于我的 MainActivity,我使用了以下代码(从其中一个示例中删除):

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;
    }
}

Android Studio 的文本编辑器可以识别我导入的包(比如 org.opencv.android),但是当我编译时我遇到了这些错误:

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

有人知道为什么会这样吗?

最佳答案

我在 OS X 上使用我的 Android Studio 时遇到了类似的问题。我编写了代码,Android Studio 会看到我引用的 .jar,并声明了依赖项,但是当 Gradle 构建项目,不行

我打开了“build.gradle”文件,不得不手动添加依赖项。例如,这是我的完整文件:

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
    }
}

您可以猜到,我添加的行是引用 Gson 和 Jsoup 的行。

关于Android Studio 和 Gradle 依赖集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16626878/

相关文章:

Android在透明图像中填充颜色

java - 将 OpenCV 矩阵循环转换为 JavaCV

android - Gradle多项目条件依赖

java - 如何动态更改状态栏中的文本

android - 从 RecyclerView Adapter 而不是 Activity 调用过渡动画

java - 从 OnClickListener 向函数外部返回一个整数(Android、Java)

android - 如何在 android 中使用 intent 发送 .text 文件?

python - 从图像中提取多个背景中的文本

python - 如何去噪图像

android studio版本控制无法忽略文件