Opencv4android的Android Studio環境配置及項目實例下載


因為軟件競賽的項目會用到Opencv for Android,所以就研究了一下如何在Android Studio上配置Opencv4Android

環境概述:

Android Studio 2.3

OpenCV-2.4.11-android-sdk

接下來主要是詳細的講解每一步的配置,然后再最后我會放上我做的一個示例項目

1.首先是下載OpenCV-2.4.11-android-sdk

不知道為什么之前上Opencv官網發現Android部分掛了,找了半天沒找着下載的地方,最后終於在SourceForge上找到了,所以為了方便大家不用到處找,我把文件傳到七牛雲了

http://onhdz331f.bkt.clouddn.com/OpenCV-2.4.11-android-sdk.zip

如果不放心的話,大家也可以到opencv官網上去下載這個sdk。

2.依據博友gloomyfish的文章進行配置,博主的視頻當中的操作是對的,但是他的文章有些錯誤,會導致配置失敗,或者說的不太清楚的的地方,我下面會補充講下

OpenCV On Android開發 - Android Studio上環境配置

(1)錯誤更正  “SDK下面native文件下所有的文件都copy到你創建好的項目libs目錄下”這句話有錯,應該改為SDK\native\libs文件下所有的文件都copy到項目libs目錄下,這樣問題解決

(2)錯誤更正  最后要加到build.gradle(Module:app)的那句

compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')

應該是要放到build.gradle(Module:app)中的dependencies{}里面,而且不是像他所說的第一行,而是應該放在第二行,也就是這句

compile fileTree(include: ['*.jar'], dir: 'libs')

的下一行。

(3)說得不太清楚的:要放到build.gradle(Module:app)的這部分代碼,是直接加在dependencies{}后面的。

 1 task nativeLibsToJar(type: Jar, description: 'create a jar archive of the native libs') {
 2     destinationDir file("$buildDir/native-libs") 3 baseName 'native-libs' 4 from fileTree(dir: 'libs', include: '**/*.so') 5 into 'lib/' 6 } 7 8 tasks.withType(JavaCompile) { 9 compileTask -> compileTask.dependsOn(nativeLibsToJar) 10 }

 

下面給出完整的build.gradle(Module:app)文件,並加上了注釋,表現了應該如何更改

 1 apply plugin: 'com.android.application'
 2 
 3 android {
 4     compileSdkVersion 25//在不同的android版本中,sdk版本不同
 5     buildToolsVersion "25.0.2"
 6     defaultConfig {
 7         applicationId "com.example.a18350.opencvtest"
 8         minSdkVersion 19
 9         targetSdkVersion 25
10         versionCode 1
11         versionName "1.0"
12         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
13     }
14     buildTypes {
15         release {
16             minifyEnabled false
17             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18         }
19     }
20 }
21 
22 dependencies {
23     compile fileTree(include: ['*.jar'], dir: 'libs')
24     compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')//那句話是加在這里的,而不是加在第一行
25     androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
26         exclude group: 'com.android.support', module: 'support-annotations'
27     })
28     compile 'com.android.support:appcompat-v7:25.3.1'
29     compile 'com.android.support.constraint:constraint-layout:1.0.2'
30     testCompile 'junit:junit:4.12'
31     compile project(':openCVLibrary2411')
32 }
33 //請將兩個task放在這里,也就是dependencies后面
34 task nativeLibsToJar(type: Jar, description: 'create a jar archive of the native libs') {
35     destinationDir file("$buildDir/native-libs")
36     baseName 'native-libs'
37     from fileTree(dir: 'libs', include: '**/*.so')
38     into 'lib/'
39 }
40 
41 tasks.withType(JavaCompile) {
42     compileTask -> compileTask.dependsOn(nativeLibsToJar)
43 }

(4)請注意,還應該要更新build.gradle(module:OpenCVLibrary2411)信息,打開build.gradle(module:OpenCVLibrary2411),修改文件中的

  1)compileSdkVersion

  2)buildToolsVersion

  3) minSdkVersion

  4)targetSdkVersion

其內容與build.gradle(Module:app)中信息相一致,這里做的事情其實是調整sdk的版本,使得編譯opencv的sdk,構建工具的版本和app相同。

 大功告成,這里放上運行成功的項目地址

http://git.oschina.net/ylzheng/opencv4android_example

大家有不明白的可以看下這個項目,如果有任何問題的話,歡迎在評論中指出。

作者: Elliott Zheng

出處: http://www.cnblogs.com/elliottzheng/p/6695446.html>

本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出, 原文鏈接 如有問題, 可郵件(elliott.zheng@foxmail.com)咨詢.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM