昔のProjectでbuildが通らない。
そんな解決。
難しい説明はなし、こうすればいいとだけ。誰か言語化してください。
(ClassicUIを使用していますがLadybug Feature Drop | 2024.2.2の最新Verです)
うまくIDEをアップデート出来ない場合、完全クリーンにした方が早いかもです(暴論)
昔のパッケージを開いてみる
フォルダが真っ赤。
これでは最新版AndroidStadioの恩恵がない。
(塗りつぶしはパッケージ名)
Buildでエラーを確認
Could not install Gradle distribution
Gradle ディストリビューションをインストールできませんでした
6.7.1が必要?本当??いやそうだけども他にも方法があるはず。
project structureを見てみる
間違いなく古い。
ならば現在の状態(最新)を目指すだけ
Android Gradle Plugin Version | Gradle Version | |
---|---|---|
以前 | 4.1.3 (4.1.0 以降) | 6.7.1 (6.5以降?) |
最新 | 8.8 | 8.10.2 |
解決法
Settingsの確認
デフォルトでいい
1.build.gradleを開く
kotlin_versionとbuild:gradleを現状と合わせる
build.gradle
buildscript {
//ext.kotlin_version = "1.4.32"←以前
ext.kotlin_version = "1.9.24"
repositories {
google()
mavenCentral()
}
dependencies {
//classpath 'com.android.tools.build:gradle:4.1.3'←以前
classpath 'com.android.tools.build:gradle:8.8.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
2. gradle-wrapper.propertiesを開く
gradle-wrapper.properties
#Fri Oct 01 08:55:20 JST 2021
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
#ここでエラーで見たdistributionUrlがいる
#下記がいけない
#distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
#現状に書き換える
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
3.読み込み確認
これで一旦Sync Nowを押してみる。
AndroidのProjectフォルダと認識し赤みが消えている。
4.仕上げ
namespaceが変わったり、記述自体が変わったり、非推奨となる場所が赤く表示されるようになるので根気強く修正しよう。
build.gradle
android {
//以前の書き方
//compileSdkVersion 31
//buildToolsVersion "30.0.3"
compileSdk = 31
//archivesBaseName ="com.example.アプリ名"
namespace ="com.example.アプリ名"
defaultConfig {
applicationId "com.example.アプリ名"
minSdk = 28
targetSdk = 31
versionCode = 1
versionName = "1.1"
//以前の書き方
// minSdkVersion 28
// targetSdkVersion 31
// versionCode 1
// versionName "1.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
成功すると綺麗に書き換わっているのが確認できる