build: Устранены предупреждения и ошибки сборки Gradle

- Обновлены версии AGP, Kotlin и Compose Compiler для совместимости.
- Версия Java обновлена до 17 во всех модулях.
- Выполнена миграция Moshi с Kapt на KSP.
- Удален устаревший атрибут 'package' из AndroidManifest.xml.
This commit is contained in:
2025-10-05 15:23:21 +03:00
parent e3f52fca52
commit 8cfad121b2
9 changed files with 222 additions and 15 deletions

View File

@@ -36,11 +36,11 @@ android {
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "1.8"
jvmTarget = "17"
}
buildFeatures {
compose = true

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.homebox.lens">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MainApplication"

View File

@@ -3,11 +3,13 @@
plugins {
// [PLUGIN] Android Application plugin
id("com.android.application") version "8.13.0" apply false
id("com.android.application") version "8.4.0" apply false
// [PLUGIN] Kotlin Android plugin
id("org.jetbrains.kotlin.android") version "1.9.22" apply false
id("org.jetbrains.kotlin.android") version "1.9.23" apply false
// [PLUGIN] Hilt Android plugin
id("com.google.dagger.hilt.android") version "2.48.1" apply false
// [PLUGIN] KSP plugin
id("com.google.devtools.ksp") version "1.9.23-1.0.19" apply false
}
// [END_FILE_build.gradle.kts]

View File

@@ -15,7 +15,7 @@ object Versions {
const val coroutines = "1.7.3"
// Jetpack Compose
const val composeCompiler = "1.5.8"
const val composeCompiler = "1.5.11"
const val composeBom = "2023.10.01"
const val activityCompose = "1.8.2"
const val navigationCompose = "2.7.6"

View File

@@ -6,6 +6,7 @@ plugins {
id("org.jetbrains.kotlin.android")
id("com.google.dagger.hilt.android")
id("kotlin-kapt")
id("com.google.devtools.ksp")
}
android {
@@ -27,11 +28,11 @@ android {
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "1.8"
jvmTarget = "17"
}
}
@@ -51,7 +52,7 @@ dependencies {
implementation(Libs.okhttp)
implementation(Libs.okhttpLoggingInterceptor)
implementation(Libs.moshiKotlin)
kapt(Libs.moshiCodegen)
ksp(Libs.moshiCodegen)
// [DEPENDENCY] Database (Room)
implementation(Libs.roomRuntime)

View File

@@ -6,12 +6,12 @@ plugins {
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
kotlinOptions.jvmTarget = "17"
}
dependencies {

View File

@@ -0,0 +1,84 @@
<![CDATA[
<work_order>
<title>Миграция Moshi с Kapt на KSP</title>
<description>
Устранить предупреждение "Kapt support in Moshi Kotlin Code Gen is deprecated".
Это требует миграции генерации кода Moshi с `kapt` на `KSP` (Kotlin Symbol Processing).
</description>
<steps>
<step>
<description>Добавить плагин KSP в корневой файл `build.gradle.kts`.</description>
<tool>
<name>apply_diff</name>
<args>
<file>
<path>build.gradle.kts</path>
<diff>
<content>
<![CDATA[
<<<<<<< SEARCH
// [PLUGIN] Hilt Android plugin
id("com.google.dagger.hilt.android") version "2.48.1" apply false
}
=======
// [PLUGIN] Hilt Android plugin
id("com.google.dagger.hilt.android") version "2.48.1" apply false
// [PLUGIN] KSP plugin
id("com.google.devtools.ksp") version "1.9.23-1.0.19" apply false
}
>>>>>>> REPLACE
]]>
</content>
<start_line>9</start_line>
</diff>
</file>
</args>
</tool>
</step>
<step>
<description>Применить плагин KSP и заменить зависимость `kapt` на `ksp` для Moshi в файле `data/build.gradle.kts`.</description>
<tool>
<name>apply_diff</name>
<args>
<file>
<path>data/build.gradle.kts</path>
<diff>
<content>
<![CDATA[
<<<<<<< SEARCH
id("org.jetbrains.kotlin.android")
id("com.google.dagger.hilt.android")
id("kotlin-kapt")
}
=======
id("org.jetbrains.kotlin.android")
id("com.google.dagger.hilt.android")
id("kotlin-kapt")
id("com.google.devtools.ksp")
}
>>>>>>> REPLACE
]]>
</content>
<start_line>6</start_line>
</diff>
<diff>
<content>
<![CDATA[
<<<<<<< SEARCH
implementation(Libs.moshiKotlin)
kapt(Libs.moshiCodegen)
=======
implementation(Libs.moshiKotlin)
ksp(Libs.moshiCodegen)
>>>>>>> REPLACE
]]>
</content>
<start_line>53</start_line>
</diff>
</file>
</args>
</tool>
</step>
</steps>
</work_order>
]]>

View File

@@ -0,0 +1,35 @@
<![CDATA[
<work_order>
<title>Удаление атрибута package из AndroidManifest.xml</title>
<description>
Устранить предупреждение "Setting the namespace via the package attribute in the source AndroidManifest.xml is no longer supported".
Это требует удаления устаревшего атрибута `package` из файла `app/src/main/AndroidManifest.xml`.
</description>
<steps>
<step>
<description>Удалить атрибут `package` из тега `manifest` в файле `app/src/main/AndroidManifest.xml`.</description>
<tool>
<name>apply_diff</name>
<args>
<file>
<path>app/src/main/AndroidManifest.xml</path>
<diff>
<content>
<![CDATA[
<<<<<<< SEARCH
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.homebox.lens">
=======
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
>>>>>>> REPLACE
]]>
</content>
<start_line>2</start_line>
</diff>
</file>
</args>
</tool>
</step>
</steps>
</work_order>
]]>

View File

@@ -0,0 +1,86 @@
<![CDATA[
<work_order>
<title>Устранение предупреждений сборки Gradle</title>
<description>
Необходимо устранить два типа предупреждений, возникающих при сборке проекта:
1. Использование устаревшего метода `Configuration.fileCollection(Spec)` в плагине `org.jetbrains.kotlin.android`.
2. Использование устаревшей версии Java 8 для компиляции.
</description>
<steps>
<step>
<description>Обновить версию Android Gradle Plugin (AGP) и плагина Kotlin в корневом файле `build.gradle.kts`.</description>
<tool>
<name>apply_diff</name>
<args>
<file>
<path>build.gradle.kts</path>
<diff>
<content>
<![CDATA[
<<<<<<< SEARCH
// [PLUGIN] Android Application plugin
id("com.android.application") version "8.13.0" apply false
// [PLUGIN] Kotlin Android plugin
id("org.jetbrains.kotlin.android") version "1.9.22" apply false
=======
// [PLUGIN] Android Application plugin
id("com.android.application") version "8.4.0" apply false
// [PLUGIN] Kotlin Android plugin
id("org.jetbrains.kotlin.android") version "1.9.23" apply false
>>>>>>> REPLACE
]]>
</content>
<start_line>5</start_line>
</diff>
</file>
</args>
</tool>
</step>
<step>
<description>Обновить версию Java до 17 в файлах сборки всех модулей. Начать с `data/build.gradle.kts`.</description>
<tool>
<name>apply_diff</name>
<args>
<file>
<path>data/build.gradle.kts</path>
<diff>
<content>
<![CDATA[
<<<<<<< SEARCH
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
=======
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
>>>>>>> REPLACE
]]>
</content>
<start_line>29</start_line>
</diff>
</file>
</args>
</tool>
</step>
<step>
<description>Применить аналогичные изменения для `app/build.gradle.kts` и других модулей. (Примечание: этот шаг потребует поиска и изменения всех `build.gradle.kts` файлов в проекте).</description>
<tool>
<name>search_files</name>
<args>
<path>.</path>
<regex>build\.gradle\.kts</regex>
</args>
</tool>
</step>
</steps>
</work_order>
]]>