因此,我试图将我的build.gradle文件从一个简单的玩具应用程序从Groovy迁移到新的Kotlin dsl for Gradle。我已经能够成功地迁移我的项目build.gradle文件,并且我还创建了一个buildSrc目录,该目录具有Kotlin文件中的所有版本号等等。到目前为止,gradle正在成功地同步和构建。但是,当我尝试将应用程序build.gradle转换为Kotlin(通过更改文件扩展名、更改所有函数调用和映射,从而遵循Kotlin语法)时,我在gradle同步中出现了一个错误,该错误表示:
org.gradle.internal.exceptions.LocationAwareException: A problem occurred configuring project ':app'.
Caused by: org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':app'.
Caused by: org.gradle.cache.CacheOpenException: Could not open cache directory er2fj44y4paf4xwhwuc5jhit0 (C:\Users\Youssef Shoaib\.gradle\caches\5.6.4\gradle-kotlin-dsl-accessors\er2fj44y4paf4xwhwuc5jhit0).
Caused by: java.util.zip.ZipException: zip file is empty
我试过重建和清理大楼,但还是没用。当我将应用程序build.gradle改回groovy时,错误就消失了,一切正常,但我真的想使用Kotlin DSL进行gradle。我也试过改变我的Kotlin版本和Gradle版本,但它仍然不起作用。作为参考,这里是我的buildSrc build.gradle.kts
plugins {
`kotlin-dsl`
}
repositories {
jcenter()
}
object Versions {
const val version_core = "1.1.0"
const val version_coroutine = "1.1.1"
const val version_constraint_layout = "1.1.3"
const val version_gradle = "3.5.3"
const val version_kotlin = "1.3.61"
const val version_lifecycle_extensions = "2.1.0"
const val version_navigation = "2.1.0"
const val version_room = "2.2.2"
}
和我的项目build.gradle.kts文件:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath("com.android.tools.build:gradle:${Versions.version_gradle}")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.version_kotlin}")
classpath("androidx.navigation:navigation-safe-args-gradle-plugin:${Versions.version_navigation}")
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
tasks.register<Delete>("clean") {
delete(rootProject.buildDir)
}
和我的应用程序build.gradle.kts文件:
plugins{
id("com.android.application")
kotlin("android")
kotlin("android.extensions")
kotlin("kapt")
id("androidx.navigation.safeargs.kotlin")
}
android {
compileOptions {
sourceCompatibility( JavaVersion.VERSION_1_8)
targetCompatibility( JavaVersion.VERSION_1_8)
}
kotlinOptions {
jvmTarget("1.8")
}
compileSdkVersion(29)
defaultConfig {
applicationId = "com.example.android.trackmysleepquality"
minSdkVersion(19)
targetSdkVersion(29)
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
javaCompileOptions {
annotationProcessorOptions {
arguments = mapOf("room.incremental" to "true")
}
}
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
}
}
// Enables data binding.
dataBinding {
enabled = true
}
}
dependencies {
implementation(fileTree(mapOf("dir" to "libs"), "include:" to listOf("*.jar")))
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:${Versions.version_kotlin}")
// Support libraries
implementation("androidx.constraintlayout:constraintlayout:${Versions.version_constraint_layout}")
// Android KTX
implementation("androidx.core:core-ktx:${Versions.version_core}")
// Room and Lifecycle dependencies
implementation("androidx.room:room-runtime:${Versions.version_room}")
implementation("androidx.room:room-ktx:${Versions.version_room}")
kapt("androidx.room:room-compiler:${Versions.version_room}")
implementation("androidx.lifecycle:lifecycle-extensions:${Versions.version_lifecycle_extensions}")
implementation("com.github.hadilq.liveevent:liveevent:1.0.1")
// Coroutines
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:${Versions.version_coroutine}")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:${Versions.version_coroutine}")
// Navigation
implementation("androidx.navigation:navigation-fragment-ktx:${Versions.version_navigation}")
implementation("androidx.navigation:navigation-ui-ktx:${Versions.version_navigation}")
// Testing
testImplementation("junit:junit:4.12")
androidTestImplementation("androidx.test.ext:junit:1.1.1")
androidTestImplementation("androidx.arch.core:core-testing:2.1.0")
androidTestImplementation("androidx.test.espresso:espresso-core:3.2.0")
androidTestImplementation("org.mockito:mockito-core:3.1.0")
}
我终于找到了解决办法。我刚刚删除了我的用户文件夹中的整个.gradle目录,我想,这使Android Studio为Kotlin DSL的访问者准备的所有缓存都失效了。所以,到最后,它确实起作用了
问题内容: 由于办公室人员的变动,C#专业知识的水平急剧下降,现在有更多的Java开发人员。至此,高层人士正在考虑将用C#编写的现有.NET项目转移到Java世界中。 除了从头开始完全出现 的明显问题之外,该公司还可以通过哪些可行的方法成功地将项目从.NET C#移植到Java? 问题答案: 这里是要考虑的事情: 这是大项目吗?如果是,请尝试使用C# 这个中型项目是否包含组件?如果否,请尝试使用C
迁移数据库ORM层 迁移模板Blade 迁移分页 迁移验证器 迁移Cache
数据库 模板类 验证器 缓存类
我最近移动了我的Laravel 5.3。1(存储库模式)从Windows 10到Ubuntu 16.04LTs的项目。当我更新composer时,我得到以下错误。 照明\Foundation\ComposerScript::postUpdate PHP警告:未捕获的错误异常:需要(/opt/lampp/htdocs/new-abc.test.lk):未能打开流:成功 /opt/lampp/htdo
我试图升级Spring引导项目从1.5. x到2.1.3一切都编译文件,但它给运行时例外 组织。springframework。豆。工厂UnsatifiedDependencyException:创建名为“ldapConfig”的bean时出错:未满足的依赖项通过字段“ldapParams”表示;嵌套的异常是org。springframework。豆。工厂BeanCreationException
迁移cache分页 仓库地址: cache 安装 composer require illuminate/cache 暂时实现 redis方式 还需安装 composer require illuminate/redis composer require predis/predis //个人比较喜欢predis 启动predis function frameInitialized() {