【cordova】Attempt to invoke virtual method ‘boolean java.io.File.mkdirs()’ on a null object referenceの解決法

cordova-plugin-cameraで以下のエラーが出た。

Attempt to invoke virtual method ‘boolean java.io.File.mkdirs()’ on a null object reference

 

cordovaカメラプラグインを使って写真を撮ろうとした瞬間にクラッシュします。

これはandroidXパッケージを導入する際にimportのandroid.supportv.4・・・を削除していたのが

問題でした。

 

代わりにandroidXを入れて無理に動かそうとしていたので、サポートライブラリで使えていた機能が

抜け落ちるので当然といえば当然でしたね。これは致命的でした・・・。

そもそもサポートライブラリありきのアプリにこのような突貫工事はご法度です。

なので、cordova platforms rm androidでプラットフォームを削除→cordova platforms add androidで

再度インストール。

 

直後にfirebaseの依存関係のエラーがでたのでcom.google.firebase:firebase-core+をcom.google.firebase:firebase-core:16.0.8

にして更新。(最新のバージョンを持ってくるので予期せぬエラーが起きるとのこと。)

ちなみにこの時の自分のcordovaのバージョンは9.0.0。このバージョンだとまだ未更新のエラーが

起きるので会社の先輩のバージョン8.1.2に合わせてビルド。

無事アプリが起動。

半年前の自分を小一時間問い詰めたい。

今回の反省点

・最新版=万能ではない。

・サポートライブラリをむやみにandroidXに変更しない。するとしてもアプリに入っているプラグインの機能を確認しながら

作業をする。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG