cordova-plugin-barcodescannerプラグインを入れて実際にスキャナーをしようとボタンを
押したらと突然アプリがクラッシュした。
昨日までは普通にスキャンできていたのにも関わらず。
cordova platfoms rm androidをして再度cordova platfoms add androidをしたのでプラグインそのものが
入っていないわけではない。念のためcordova plugin lsをしてもpackage.jsonの中を見てもしっかり
cordova-plugin-barcodescannerプラグインは存在していた。
44:05.472 23560-23681/jp.co.cpointlab.myapp E/AndroidRuntime: FATAL EXCEPTION: pool-1-thread-2
Process: jp.co.cpointlab.myapp, PID: 23560
android.content.ActivityNotFoundException: Unable to find explicit activity class {jp.co.cpointlab.myapp/com.google.zxing.client.android.CaptureActivity}; have you declared this activity in your AndroidManifest.xml?
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1939)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1617)
at android.app.Activity.startActivityForResult(Activity.java:4472)
at org.apache.cordova.CordovaActivity.startActivityForResult(CordovaActivity.java:345)
at android.app.Activity.startActivityForResult(Activity.java:4430)
at org.apache.cordova.CordovaInterfaceImpl.startActivityForResult(CordovaInterfaceImpl.java:68)
at com.phonegap.plugins.barcodescanner.BarcodeScanner$1.run(BarcodeScanner.java:204)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
渋々エラーを見るとアクティビティは見つからなかったのでこのプラグインを使うことができません。
みたいなことが書いており、どうやら何らかの理由でandroidStudioにcordova-plugin-barcodescannerプラグインが
認識されずそのままアプリがrunしてしまったみたいです。
ところがビルドの際はnpm run build→cordova prepare androidで必ずandroidStudioに中継をしているので動機のし忘れは考えにくい。
心当たりがあるとすればソースツリーで更新したpackage.jsonとconfig.xmlをコミットしたくらい
ですがコミット前は全然プラグイン周りはいじってないしプラグインがpackage.jsonを
入ったことを確認した上でnpm installを実行したのでこれだ!とは断言はしにくい。
恐らく無意識にpackage.json・package.lock.jsonをいじったかcordova prepare androidを
して同期している時に他のプラグインの依存系のエラーにはまってcordova-plugin-barcodescanner
プラグインがandroidStudioに入らなかったかのどちらかだと睨んでいます。
とりあえず原点に戻って再度cordova platfoms rm androidをして再度cordova platfoms add android
を実行。今度はしっかりとバーコードスキャナ―が動いた。
package.jsonにプラグインは入っていてもその過程でなにか他のプラグインが違う動きをしたと思ったら
一度立ち止まって解決してから確認をしましょう。