我正在关注 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/