2016-09-13 5 views
1

アプリケーションを実行するたびに、致命的な例外がメインになります。 このアプリケーションではopencv 2.4.10を使用しています.1つのデバイスで動作していて、デバイス上で動作しませんでした。なぜこれが起こっているのかわかりませんでした。AndroidRuntime:致命的な例外:main:アプリケーションがエラーを停止しました

私は、コードは、このエラーの原因となっているどの部分かわからない:

09-13 10:55:30.039 19555-19555/org.blatnik.eyemon E/AndroidRuntime: FATAL EXCEPTION: main 
Process: org.blatnik.eyemon, PID: 19555 
java.lang.RuntimeException: Unable to start service [email protected] with Intent { flg=0x10000000 cmp=org.blatnik.eyemon/.MainService }: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 
    at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4079) 
    at android.app.ActivityThread.access$2400(ActivityThread.java:221) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1897) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:158) 
    at android.app.ActivityThread.main(ActivityThread.java:7224) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 
    at android.view.ViewRootImpl.setView(ViewRootImpl.java:853) 
    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:337) 
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 
    at android.app.Dialog.show(Dialog.java:350) 
    at **org.opencv.android.BaseLoaderCallback.onPackageInstall(BaseLoaderCallback.java:110) 
    at org.opencv.android.AsyncServiceHelper.InstallService(AsyncServiceHelper.java:117) 
    at org.opencv.android.AsyncServiceHelper.initOpenCV(AsyncServiceHelper.java:33) 
    at org.opencv.android.OpenCVLoader.initAsync(OpenCVLoader.java:85) 
    at org.blatnik.eyemon.MainService.onStartCommand(MainService.java:140)** 
    at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4062) 
    at android.app.ActivityThread.access$2400(ActivityThread.java:221)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1897)  
    at android.os.Handler.dispatchMessage(Handler.java:102)  
    at android.os.Looper.loop(Looper.java:158)  
    at android.app.ActivityThread.main(ActivityThread.java:7224)  
    at java.lang.reflect.Method.invoke(Native Method)  
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 

をしてくださいすべてのソリューションは非常に感謝するでしょう。

+0

サービスからダイアログを開こうとしていますか? –

+0

あなたは 'サービス'から直接通信しているようですが、あなたのコードを追加してください。 – W4R10CK

+0

アプリは顔検出のためにフロントまたはバックカメラを開く必要がありますが、起動するとアプリケーションがクラッシュします。これは見た目です:https://drive.google.com/file/d/0B03WnxRSaChVRE5BczJUN1hod2VUN1JiWjEyR1l2eEJnT0Jj/view?usp=sharing – joe

答えて

1

はどうやらもう .Tryではなくthis

(!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, getApplicationContext(), mLoaderCallback)) 
getApplicationContext()を渡すコンテキストすなわち contextに関連する問題は、有効ではありません OpenCBLoader

(!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback)) 

とここcontextを使用しているタスクが実行されて

AMK(android memory killer)がメモリ不足のためにserviceを殺す場合を考えてみましょうrviceが前景の活動の前に最初に破壊され、あなたのサービスが死んでしまいました。さらに、thisコンテキストはもはや有効ではありません。例外

+0

私がstartを押すと、アプリケーションはクラッシュしませんが、このメッセージはAndroidスタジオに表示されます:OpenCVManager/Helper :新しいサービスのインストールを依頼する org.blatnik.eyemon I/MainService:OpenCVのロードエラー – joe

+0

は、2.4.3のバグであるためopenCV 2.4.4の最新バージョンを使用する必要があるようです。[このリンクをチェック] //answers.opencv.org/question/6891/loading-opencv-on-android-fail-sometimes/) –

+0

私が使用する場合、私は何を変えるべきですか? opencv 2.4.4? – joe

関連する問題