Android Studio和Gradle依赖项集成

Ron*_*eng 10 dependencies android opencv gradle android-studio

我正在使用Android Studio来学习本教程.我已完成以下步骤:

在Android Studio中创建新项目

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

右键单击我的主模块 - >更改模块设置 - >将上述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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会这样?

ryn*_*jvr 12

我在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
    }
}
Run Code Online (Sandbox Code Playgroud)

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