gradle の ソースコード参照(Source Dependencies) 機能を使うと git の gradle プロジェクトをソースコードのまま参照出来て便利です。しかし、自作の外部ライブラリ(Android Library)をソースコード参照したところ、ビルドが全くできなくなりました。
./gradlew assemble
しても、参照先の build.gradle のタスクが一切走りません。結果として、必要なクラスが一切見つからない状態となってしまいます。
どうもエラーが内部で握りつぶされているようで、--info や --stacktrace オプションを付けても原因がまったく分かりません。
調査に挫折しかけたのですが、なにかの条件(再現できない…)で偶然 SDK location not found.
のエラーメッセージが流れてきたため、原因が分かりました。参照先の Android Library プロジェクトで ANDROID SDK のパスが見つからず、 Android Plugin が初期化できずに終了していたのです。
解決方法
環境変数 ANDROID_SDK_ROOT に Android SDK のパスをセットしてから、ビルドすることで解決しました。
よもやま
Flutter Plugin の開発時に sourceControl を使っていたため、非常に分かりにくいことになっていました。 Flutter の場合、flutter run 時に、local.properties ファイルに ANDROID SDK のパスを自動で出力してくれるのです。が、 Source Dependencies で参照したプロジェクトからは local.properties 内容は当然見えないため、SDK が見つからない、という状態になってしまうようです。