Skip to content

Commit 4bdf754

Browse files
author
Fastace
committed
BUG:目前已经能够成功构建、云端备份会闪退、待修复
1 parent d642637 commit 4bdf754

3 files changed

Lines changed: 11 additions & 5 deletions

File tree

source/core/service/build.gradle.kts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ plugins {
33
alias(libs.plugins.library.hilt)
44
alias(libs.plugins.library.protobuf)
55
alias(libs.plugins.refine)
6+
alias(libs.plugins.kotlin.serialization) // 添加这行
67
}
78

89
android {
@@ -22,6 +23,8 @@ dependencies {
2223
implementation(project(":core:restic"))
2324
compileOnly(project(":core:hiddenapi"))
2425

26+
// JSON Serialization - 添加这个依赖
27+
implementation(libs.kotlinx.serialization.json)
2528

2629
// Gson
2730
implementation(libs.gson)

source/core/service/src/main/kotlin/com/xayah/core/service/packages/backup/BackupServiceCloudImpl.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.xayah.core.service.packages.backup
22

33
import android.util.Log
44
import com.xayah.core.restic.ResticRepository
5-
import com.xayah.core.restic.ResticProgressCallback // 添加
5+
import com.xayah.core.restic.ResticRepository.ResticProgressCallback // 添加
66
import com.xayah.core.restic.ResticSnapshot // 添加
77
import com.xayah.core.model.util.formatToStorageSizePerSecond
88
import com.xayah.core.data.repository.CloudRepository
@@ -15,7 +15,7 @@ import com.xayah.core.model.OpType
1515
import com.xayah.core.model.OperationState
1616
import com.xayah.core.model.TaskType
1717
import com.xayah.core.model.database.CloudEntity
18-
import com.xayah.core.model.database.CloudType // 添加
18+
import com.xayah.core.model.CloudType // 添加
1919
import com.xayah.core.model.database.PackageEntity
2020
import com.xayah.core.model.database.ProcessingInfoEntity
2121
import com.xayah.core.model.database.TaskDetailPackageEntity
@@ -120,7 +120,7 @@ internal class BackupServiceCloudImpl @Inject constructor() : AbstractBackupServ
120120
when (mCloudEntity.type) {
121121
CloudType.S3 -> {
122122
// S3 使用 Restic 备份
123-
val s3Extra = Json.decodeFromString<S3Extra>(mCloudEntity.extra)
123+
val s3Extra = json.decodeFromString<S3Extra>(mCloudEntity.extra)
124124
val resticSuccess = backupWithResticToS3(
125125
packageName = p.packageName,
126126
compressedFile = compressedFile,
@@ -184,6 +184,8 @@ internal class BackupServiceCloudImpl @Inject constructor() : AbstractBackupServ
184184
t.update(processingIndex = t.processingIndex + 1)
185185
}
186186

187+
private val json = Json { ignoreUnknownKeys = true }
188+
187189
/**
188190
* 使用 Restic 备份到 S3
189191
*/
@@ -247,7 +249,7 @@ internal class BackupServiceCloudImpl @Inject constructor() : AbstractBackupServ
247249
*/
248250
private fun extractSnapshotIdFromJson(jsonOutput: String): String? {
249251
return try {
250-
Json.decodeFromString<ResticSnapshot>(jsonOutput).id
252+
json.decodeFromString<ResticSnapshot>(jsonOutput).id
251253
} catch (e: Exception) {
252254
null
253255
}

source/gradle/libs.versions.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ guava-compat = "9999.0-empty-to-avoid-conflict-with-guava"
4949
sardine-next = "1.0.2"
5050
bountycastle = "1.79"
5151
animation-graphics = "1.7.6"
52-
52+
kotlinxSerializationJson = "1.6.0"
5353
# plugins
5454
android-gradle-plugin = "8.11.1"
5555
kotlin = "2.0.21"
@@ -129,6 +129,7 @@ firebase-crashlytics-build-logic = { group = "com.google.firebase", name = "fire
129129
[plugins]
130130
android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" }
131131
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
132+
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
132133
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } # https://androidx.dev/storage/compose-compiler/repository
133134
kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }
134135
serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }

0 commit comments

Comments
 (0)