[凡ミス]Android StudioのGradle/Gradle pluginについて
凡ミスした結果Gradleについて少し勉強できた.
内容はしょうもないミス.ただ,初心者は意外とこういうミスでハマったりするので,Gradleについての基礎とあわせ,自分の恥ずかしいミスについて紹介させてください.
「アプリのbuild.gradleファイルに~」と書かれていたら.
build.gradle(:app)のことですよ!!!
ただGradleについてのいい勉強になったのでメモ.
やろうとしたこと
NavigationEditorを使いたくて,公式ガイドを参考に作業しようとした.
Navigation コンポーネント スタートガイド | Android デベロッパー | Android Developers
プロジェクトにナビゲーション サポートを組み込むには、アプリの build.gradle ファイルに以下の依存関係を追加します。
ここで僕はミスり,build.gradle(プロジェクト名)のdependenciesにコードを追加してしまった.
起きたこと
Gradleエラーが出,わけが分からずバージョンをいじってさらに深刻化してしまった.
解決策
- コードの修正(正しい場所へ追加し直した)
- ぐちゃぐちゃになってしまったGradle とGradle pluginのバージョンを直した.
Gradle Gradle pluginのバージョンについて
ビルドシステムであるGradleを利用できるようにするのがGradle pluginなのだが,それぞれの対応しているバージョンが異なる.
例えばGradle pluginのバージョンが4.0.0の際に必要なGradleのバージョンは6.1.1以降となる.ややこしい…
GradleとGradle pluginのバージョン確認と変更
Android Studio上で
⌘ ; またはFile>Project Structureを開きバージョンを揃える.
以下,凡ミスに気づかなかったときの迷走ぶりを紹介
混乱している当時のメモです.
エラーの内容
Gradle DSL method not found: 'implementation()'
Possible causes:
The project 'projectname' may be using a version of the Android Gradle plug-in that does not contain the method (e.g. 'testCompile' was added in 1.1.0).
Upgrade plugin to version 4.0.1 and sync project
The project 'omikuji' may be using a version of Gradle that does not contain the method.
Open Gradle wrapper file
The build file may be missing a Gradle plugin.
Apply Gradle plugin
Gradleのバージョンがあってないらしい.
そもそもGradleとは?
Gradle入門 - Qiita
ビルドシステムの一種らしい.
一度追加したコードをコメントアウトし,
GradleとGradle pluginのバージョンを対応させる.エラーが消えた.
コードを戻すとまたエラー.
このコードの中に何があるんだ?
// Navigation-editor
def nav_version = "2.3.1"
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
アホですね−.
植えた木にうまく果実がならないときは,まずはそもそも植えたものが正しいかどうかを確認しましょう!!!
Discussion