2016-05-02 9 views
0

opencvをAndroid Studioと連携させようとしています。私は明白なチュートリアルに従ってきましたが、opencvバージョン2.4.11のサンプルコードをまったく動作させることはできません。Android Studio 2.1で動作するようにopencvサンプルを取得する方法

アプリはコンパイルが、それを実行しようとしたとき、私は単に携帯電話にエラーメッセージが表示されます。

Unfortunately OCV T3 Camera Control has stopped. 

とlogcat:私はほとんどで動作するようにしようとしている

05-02 00:23:37.876 18962-18962/org.opencv.samples.tutorial3 E/AndroidRuntime: FATAL EXCEPTION: main 
                      Process: org.opencv.samples.tutorial3, PID: 18962 
                      java.lang.RuntimeException: Unable to resume activity {org.opencv.samples.tutorial3/org.opencv.samples.tutorial3.Tutorial3Activity}: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=org.opencv.engine.BIND } 
                       at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3103) 
                       at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3134) 
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481) 
                       at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                       at android.os.Looper.loop(Looper.java:148) 
                       at android.app.ActivityThread.main(ActivityThread.java:5417) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                      Caused by: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=org.opencv.engine.BIND } 
                       at android.app.ContextImpl.validateServiceIntent(ContextImpl.java:1209) 
                       at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1308) 
                       at android.app.ContextImpl.bindService(ContextImpl.java:1286) 
                       at android.content.ContextWrapper.bindService(ContextWrapper.java:604) 
                       at org.opencv.android.AsyncServiceHelper.initOpenCV(AsyncServiceHelper.java:24) 
                       at org.opencv.android.OpenCVLoader.initAsync(OpenCVLoader.java:89) 
                       at org.opencv.samples.tutorial3.Tutorial3Activity.onResume(Tutorial3Activity.java:91) 
                       at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1258) 
                       at android.app.Activity.performResume(Activity.java:6327) 
                       at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3092) 
                       at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3134)  
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481)  
                       at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
                       at android.os.Handler.dispatchMessage(Handler.java:102)  
                       at android.os.Looper.loop(Looper.java:148)  
                       at android.app.ActivityThread.main(ActivityThread.java:5417)  
                       at java.lang.reflect.Method.invoke(Native Method)  
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  

を現在のAndroid Studioバージョン2.1とAndroidバージョン6.0(SDKバージョン23)ですが、以前のバージョンであれば問題ありません。私は、おそらく私はSDKのバージョン21または19を使用する必要があります、これらの後のバージョンを使用しようとばかげていると言う投稿を見てきましたか?

私は

minSdkVersion 19 
    targetSdkVersion 21 

を使用するために私のbuild.gradleファイルを変更しようとしました、これは何も変わらないようです。

助けてください。

+0

ショーコードあなたはテントを行うとき –

答えて

0

私は基本的な答えを見つけました。今ではサンプルが実際に実行できるようになりましたが、まだ他の質問に記載されているような欠陥があります。 build.gradleファイルで

minSdkVersion 19 
targetSdkVersion 19 

を:

コア答えは、あなたが設定しなければならないということです。

Androidの「インテント」が指定されているのは、アンドロイドのバージョン19以降、絶対的なものから絶対的なものへと変更されたため、opencvは更新されていないことが明らかです。私は(どうやらもう存在した - いったいOpenCVのために何が起こっているのか?)answers.opencv.orgにこのあいまいな参照を通じて最初にこれを見つけたん:

https://webcache.googleusercontent.com/search?q=cache:T5pTdiCxRJIJ:answers.opencv.org/question/54450/error-opencv4android-caused-by-javalangillegalargumentexception-service-intent-must-be-explicit/+&cd=1&hl=en&ct=clnk&gl=us

あなたはすべてのbuild.gradleでこれを修正する必要がありますこのtargetSdkVersionディレクティブを含むファイル(opencvライブラリディレクトリと各サンプルディレクトリ内)。

ポートレートモード風景モードではなく、サンプルまだ仕事だけ私が質問に尋ねるよう:

How to force an Android camera to display in portrait mode with opencv?

とサンプル・アプリケーションのメニューの表示に多くの問題などが残っています、

opencvとAndroidで何が起こっているのですか? Android sdkバージョン19(Android 4.4.2)は少なくとも1年(2〜3年)以上古いですが、opencvのこのバージョン(およそ)はおそらく1年以上にわたって存在しています。そして、このディストリビューションで提供されたサンプルは、箱から出てきませんか?まだ誰かがAndroid用opencvを維持していますか?

(解説のため申し訳ありませんが、あなたはこのようなものは、標準のディストリビューションに固定されようとしているときについて何かを知っているだけであれば、意見を返信気にしないで下さい。)

関連する問題