あかんわ

覚えたことをブログに書くようにすれば多少はやる気が出るかと思ったんです

久しぶりのAndroid開発(Scala on Android)で遭遇したエラー

公私共に暇になり、趣味のプログラミングを再開しようかと、久し振りにIntelliJ IDEAを起動し、表示された通知に促されるまま何も考えずに色々とアップデートした結果、いくつかのエラー*1に遭遇する羽目になりました。

SDK Build Tools revision is too low

IntelliJ IDEAのアップデートが終わり、最初に遭遇したエラーです。

Error:The SDK Build Tools revision (24.0.2) is too low for project ':app'. Minimum required is 25.0.0

Install Build Tools 25.0.0, update version in build file and sync project

Open File

SDK Build Tools revision is too lowで検索して最初に表示されたこちらのブログを見て、とりあえず新しいSDK Build Toolsをインストールすれば良さそうだと考え、エラーの下に表示されていたOpen Fileから新しいSDK Build Toolsをインストールしたら、エラーは表示されなくなりました。

終わらないdump project structure from sbt

SDK Build Toolsのエラーが出なくなり、さてコードを書こうかとIntelliJ IDEAを起動し、開いていたプロジェクトを閉じたり別のプロジェクトを開いたりしている間に、いつまでたってもsyncが終わらなく*2なりました。

syncのログにdump project structure from sbtが表示されていたので、dump project structure from sbtで検索して辿り着いたStack OverflowのAnswersの通りに、Project level settingsDwonload: Library sourcesを無効化したら、syncが終わらない現象には遭遇しなくなりました。

解決を諦めたSession 'run': Error Installing APK

上述のエラーに対し場当たり的な対応をした結果、IntelliJ IDEAを起動してもエラーに遭遇しなくなったので、ビルドは成功するのだろうかと試した際に遭遇したエラーです。

$ adb push /Users/b0npuv/hello-scala/.idea/modules/../../../../../.android/sbt/exploded-aars/com.android.support-recyclerview-v7-24.1.1 /data/local/tmp/android.support.v7.recyclerview

com.android.ddmlib.SyncException: Local path is a directory.

Error while Installing APK

エラーログに表示されていたcom.android.ddmlib.SyncException: Local path is a directoryで検索し、表示されたいくつかのStack OverflowのAnswerを順番に試したものの、sbtScalaも俄仕込みの知識しかない自分には解決までの道のりは遠そうだと悟り、エラーの解決は諦めました。

参考にしたStack Overflow

android - Failed to install *.apk on device '*': Local path doesn't exist - Stack Overflow java - com.android.ddmlib.SyncException: No such file or directory - Stack Overflow com.android.ddmlib.SyncException: Local path doesn't exist - While compiling app with eclipse - Stack Overflow com.android.ddmlib.SyncException: Is a directory - Stack Overflow

開発環境

*1:解決を諦めたエラーもあります

*2:10分以上syncが終わるのを待ちました