我在构建特定项目时收到此错误:
error while writing /home/myuser/AndroidStudioProjects/WalletConnectKotlinV2/foundation/build/classes/kotlin/main/com/walletconnect/foundation/network/model/RelayDTO_Subscribe_Result_AcknowledgementJsonAdapter$annotationImpl$com_walletconnect_foundation_common_adapters_SubscriptionIdAdapter_Qualifier$0.class (Permission denied)
Run Code Online (Sandbox Code Playgroud)
虽然我确保正确地 chmodding 一切(是的:ugo+w
!!!!!!),但我仍然遇到相同的错误。当查看这个链接时,他们说这可能与文件名太长有关,并给出了似乎是特定于框架的东西来解决它。
特别是这个项目是由其他人制作的,我只是克隆它来尝试使用相关的包(WalletConnect本身超出了这个问题的范围,但该项目无论如何都是克隆的)。我正在运行最新的 Android Studio 版本(2021.3.1,几个月前发布)。我该怎么做才能确保该代码实际构建而不是给我这个错误?
gradle 文件如下所示:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
id("java-library")
kotlin("jvm")
id("com.google.devtools.ksp") version kspVersion
id("publish-module-java")
}
project.apply {
extra[KEY_PUBLISH_ARTIFACT_ID] = "foundation"
extra[KEY_PUBLISH_VERSION] = "1.2.0-SNAPSHOT"
extra[KEY_SDK_NAME] = "Foundation"
}
java {
sourceCompatibility = jvmVersion
targetCompatibility = jvmVersion
}
tasks.withType<KotlinCompile>() {
kotlinOptions {
jvmTarget = jvmVersion.toString()
}
}
tasks.withType<Test>() {
systemProperty("SDK_VERSION", requireNotNull(project.extra.get(KEY_PUBLISH_VERSION)))
systemProperty("TEST_RELAY_URL", System.getenv("TEST_RELAY_URL"))
systemProperty("TEST_PROJECT_ID", System.getenv("TEST_PROJECT_ID"))
}
dependencies {
scarlet()
okhttp()
koinJvm()
moshi()
moshiKsp()
bouncyCastle()
multibaseJava()
restEasyJava()
jUnit5()
mockk()
}
Run Code Online (Sandbox Code Playgroud)
虽然这些 (buildSrc) 函数看起来大多像这样:
// The constants file:
import org.gradle.api.JavaVersion
const val KEY_PUBLISH_VERSION = "PUBLISH_VERSION"
const val KEY_PUBLISH_ARTIFACT_ID = "PUBLISH_ARTIFACT_ID"
const val KEY_SDK_NAME = "SDK_NAME"
const val dokkaVersion = "1.6.21"
const val CORE_VERSION = "1.6.0"
const val BOM_VERSION = "1.0.1"
val jvmVersion = JavaVersion.VERSION_11
const val MIN_SDK: Int = 23
const val TARGET_SDK: Int = 32
const val COMPILE_SDK: Int = TARGET_SDK
const val kotlinVersion = "1.7.10"
const val kspVersion = "1.7.10-1.0.6"
const val sqlDelightVersion = "1.5.2"
const val moshiVersion = "1.13.0"
const val coroutinesVersion = "1.6.4"
const val scarletVersion = "1.0.0"
const val scarletPackage = "com.github.WalletConnect.Scarlet"
const val koinVersion = "3.2.0"
const val mlKitBarcode = "16.0.1"
const val camera2Version = "1.1.0-alpha01"
const val lifecycleVersion = "2.5.1"
const val lifecycleRuntimeKtx = "2.4.1"
const val navVersion = "2.4.1"
const val retrofitVersion = "2.9.0"
const val okhttpVersion = "4.9.0"
const val bouncyCastleVersion = "1.70"
const val sqlCipherVersion = "4.5.0@aar"
const val multibaseVersion = "1.1.0"
const val jUnit5Version = "5.7.2"
const val androidxTestVersion = "1.4.0"
const val robolectricVersion = "4.6"
const val mockkVersion = "1.12.0"
const val jsonVersion = "20220320"
const val timberVersion = "5.0.1"
const val androidSecurityVersion = "1.1.0-alpha03"
const val web3jVersion = "4.9.4"
const val restEasyVersion = "3.15.3.Final"
// The functions file:
import org.gradle.kotlin.dsl.DependencyHandlerScope
fun DependencyHandlerScope.scanner() {
"implementation"("com.google.mlkit:barcode-scanning:$mlKitBarcode")
"implementation"("androidx.camera:camera-camera2:$camera2Version")
"implementation"("androidx.camera:camera-lifecycle:$camera2Version")
"implementation"("androidx.camera:camera-view:1.0.0-alpha21")
}
fun DependencyHandlerScope.lifecycle() {
"implementation"("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVersion")
"implementation"("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleVersion")
"implementation"("androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleRuntimeKtx")
}
fun DependencyHandlerScope.navigationComponent() {
"api"("androidx.navigation:navigation-fragment-ktx:$navVersion")
"api"("androidx.navigation:navigation-ui-ktx:$navVersion")
}
fun DependencyHandlerScope.coroutines() {
"api"("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
}
fun DependencyHandlerScope.coroutinesTest() {
"testImplementation"("org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutinesVersion")
}
fun DependencyHandlerScope.scarlet() {
"api"("$scarletPackage:scarlet:$scarletVersion")
"api"("$scarletPackage:websocket-okhttp:$scarletVersion")
"api"("$scarletPackage:stream-adapter-coroutines:$scarletVersion")
"api"("$scarletPackage:message-adapter-moshi:$scarletVersion")
}
fun DependencyHandlerScope.scarletAndroid() {
"api"("$scarletPackage:lifecycle-android:$scarletVersion")
}
fun DependencyHandlerScope.scarletTest() {
"testImplementation"("$scarletPackage:websocket-mockwebserver:$scarletVersion")
"testImplementation"("$scarletPackage:test-utils:$scarletVersion")
}
fun DependencyHandlerScope.retrofit() {
"api"("com.squareup.retrofit2:retrofit:$retrofitVersion")
"api"("com.squareup.retrofit2:converter-moshi:$retrofitVersion")
}
fun DependencyHandlerScope.moshi() {
"api"("com.squareup.moshi:moshi-adapters:$moshiVersion")
"api"("com.squareup.moshi:moshi-kotlin:$moshiVersion")
}
fun DependencyHandlerScope.moshiKsp() {
"ksp"("com.squareup.moshi:moshi-kotlin-codegen:$moshiVersion")
}
fun DependencyHandlerScope.okhttp() {
"api"(platform("com.squareup.okhttp3:okhttp-bom:$okhttpVersion"))
"api"("com.squareup.okhttp3:okhttp")
"api"("com.squareup.okhttp3:logging-interceptor")
}
fun DependencyHandlerScope.bouncyCastle() {
"api"("org.bouncycastle:bcprov-jdk15on:$bouncyCastleVersion")
}
fun DependencyHandlerScope.sqlDelightAndroid() {
"api"("com.squareup.sqldelight:android-driver:$sqlDelightVersion")
"api"("com.squareup.sqldelight:coroutines-extensions-jvm:$sqlDelightVersion")
}
fun DependencyHandlerScope.sqlCipher() {
"api"("net.zetetic:android-database-sqlcipher:$sqlCipherVersion")
}
fun DependencyHandlerScope.sqlDelightTest() {
"testImplementation"("com.squareup.sqldelight:sqlite-driver:$sqlDelightVersion")
"testImplementation"("org.xerial:sqlite-jdbc:3.8.10.2") {
// Override the version of sqlite used by sqlite-driver to match Android API 23
version {
strictly("3.8.10.2")
}
}
}
fun DependencyHandlerScope.koinJvm() {
"implementation"("io.insert-koin:koin-core:$koinVersion")
}
fun DependencyHandlerScope.koinAndroid() {
"api"("io.insert-koin:koin-android:$koinVersion")
}
fun DependencyHandlerScope.koinTest() {
"testImplementation"("io.insert-koin:koin-test-junit5:$koinVersion")
}
fun DependencyHandlerScope.glide_N_kapt() {
"implementation"("com.github.bumptech.glide:glide:4.12.0")
"kapt"("com.github.bumptech.glide:compiler:4.12.0")
}
fun DependencyHandlerScope.multibaseJava() {
"api"("com.github.multiformats:java-multibase:$multibaseVersion") //https://mvnrepository.com/artifact/com.github.multiformats/java-multibase/1.1.0 vulnerability detected with library
}
fun DependencyHandlerScope.restEasyJava() {
"implementation"("org.jboss.resteasy:resteasy-jaxrs:$restEasyVersion")
}
fun DependencyHandlerScope.jUnit5() {
"testImplementation"(platform("org.junit:junit-bom:$jUnit5Version"))
"testImplementation"("org.junit.jupiter:junit-jupiter-api:$jUnit5Version")
"testRuntimeOnly"("org.junit.jupiter:junit-jupiter-engine:$jUnit5Version")
"testImplementation"("org.jetbrains.kotlin:kotlin-test-junit5:$kotlinVersion")
}
fun DependencyHandlerScope.jUnit5Android() {
"androidTestImplementation"("org.junit.jupiter:junit-jupiter-api:$jUnit5Version")
"androidTestImplementation"("de.mannodermaus.junit5:android-test-core:1.3.0")
"androidTestRuntimeOnly"("de.mannodermaus.junit5:android-test-runner:1.3.0")
}
fun DependencyHandlerScope.androidXTest() {
"testImplementation"("androidx.test.ext:junit-ktx:1.1.3")
"testImplementation"("androidx.test:core-ktx:$androidxTestVersion")
"androidTestImplementation"("androidx.test:core-ktx:$androidxTestVersion")
"androidTestImplementation"("androidx.test:runner:$androidxTestVersion")
"androidTestImplementation"("androidx.test:rules:$androidxTestVersion")
}
fun DependencyHandlerScope.robolectric() {
"testImplementation"("org.robolectric:robolectric:$robolectricVersion")
}
fun DependencyHandlerScope.mockk() {
"testImplementation"("io.mockk:mockk:$mockkVersion")
}
fun DependencyHandlerScope.testJson() {
"testImplementation"("org.json:json:$jsonVersion")
}
fun DependencyHandlerScope.timber() {
"api"("com.jakewharton.timber:timber:$timberVersion")
}
fun DependencyHandlerScope.security() {
"api"("androidx.security:security-crypto-ktx:$androidSecurityVersion")
}
fun DependencyHandlerScope.web3jCrypto() {
"api"("org.web3j:crypto:$web3jVersion")
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
525 次 |
最近记录: |