Shu*_*ter 227 android kotlin android-studio
突然间我开始收到这个错误,我不知道为什么如果有人让我知道这个错误在哪里,就会有足够的帮助。由于android studio的新更新,我能得到的最多。我得到的错误的详细摘要。
Task :app:kaptDebugKotlin
ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1ANTLR Runtime version 4.5.3 used for parser compilation does not match the current runtime version 4.7.1ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1ANTLR Runtime version 4.5.3 used for parser compilation does not match the current runtime version 4.7.1C:\Users\shubh\Downloads\MarginCalculator\app\build\generated\source\kapt\debug\com\kotlin_developer\margincalculator\DataBinderMapperImpl.java:10: error: cannot find symbol
import com.kotlin_developer.margincalculator.databinding.FragmentCalculatorScreenBindingImpl;
symbol: class FragmentCalculatorScreenBindingImpl
Task :app:kaptDebugKotlin FAILED
location: package com.kotlin_developer.margincalculator.databinding
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
> java.lang.reflect.InvocationTargetException (no error message)
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 17s
29 actionable tasks: 27 executed, 2 up-to-date
Run Code Online (Sandbox Code Playgroud)
Eri*_*ric 380
Android Studio 的 UI 只是隐藏了错误...
当错误发生时,它会在列表视图中突出显示该项目,并在终端视图中显示一条无用的消息。

要找到真正的错误,请在列表视图中选择根项目,以便 Android Studio 在终端视图中显示整个构建输出,然后滚动以查找错误。

小智 78
也许我的答案有点晚了,但无论如何,我遇到了同样的错误。构建失败可能是由 Android Studio 未能指出的一些错误引起的,这可能是由于项目大小非常大。
这是指出确切错误的简单方法。
在 Android Studio 中,转到Analyze菜单并单击Inspect Code;检查整个项目,单击“确定”并等待检查完成。
现在您将看到一个选项卡,该选项卡将指出所有错误、警告等,您现在可以解决真正的问题。
too*_*o42 63
找出潜在问题的方法是运行以下命令:
./gradlew assembleDebug --stacktrace
Run Code Online (Sandbox Code Playgroud)
Mat*_*tti 53
单击终端上的 --stacktrace 可查看错误的详细信息。你可以在这里找到它:
如果您有 MacBook Pro,那么kapt "org.xerial:sqlite-jdbc:3.34.0"在 room-compiler 之前添加可能会解决您的问题。
kapt "org.xerial:sqlite-jdbc:3.36.0" // Only for computer with M1 CPU
implementation("androidx.room:room-ktx:$room_version")
kapt "androidx.room:room-compiler:$room_version"
Run Code Online (Sandbox Code Playgroud)
在这里查看更多内容。
tua*_*n91 31
改变
implementation "android.arch.persistence.room:runtime:1.1.1"
kapt "android.arch.persistence.room:compiler:1.1.1"
Run Code Online (Sandbox Code Playgroud)
至(2021 年 9 月 4 日更新)
implementation "androidx.room:room-runtime:2.3.0"
annotationProcessor "androidx.room:room-compiler:2.3.0"
Run Code Online (Sandbox Code Playgroud)
Aja*_*J G 25
我遇到了同样的问题,所以我尝试通过执行获取更多信息
gradle->app->Tasks->Build->assemble
在此之后,我得到了确切的错误消息“注释处理时出错”。我检查了我最近调整的 DAO 类,发现其中一种方法返回类型未定义。
//Before
@Query("SELECT countryName FROM country_table WHERE countryCode= :code")
fun getCountryNameForCode(code: String)
//After
@Query("SELECT countryName FROM country_table WHERE countryCode= :code")
fun getCountryNameForCode(code: String): String
Run Code Online (Sandbox Code Playgroud)
小智 19
我有一段时间遇到了同样的错误,然后我开始检查其他包,我知道我在数据库代码中犯了一个错字错误。因此,“浏览您的数据库和其他活动类文件,您可能会发现其中的一些错误。”
Ibr*_*zin 13
好的,如果您使用 Android Studio 4.1.2,也会出现此问题。
所以,你要做的是:
下载jdk 11(搜索下载)
在 Android Studio 中,转到File -> Project Structure -> Jdk Location -> 更改为刚刚下载的 Jdk 的路径。
对我来说,一堆引用错误和 XML 表达式中的DataBinding错误产生了这个错误。
我已经删除了<variable/>一个layout文件,因为我想,我不再需要它了。我忘了我在layout文件中引用了变量。
构建项目后,这产生了一个错误,无法导入BindingImpl该类,因为它不存在,并且此错误仅显示为与上述KaptExecution错误并行的警告。
搜索了一段时间,发现这个错误并解决了。然后,显示了一堆参考错误,因为我重命名了一些东西,但它没有在Fragment文件中重命名。也解决了这些错误后,构建对我来说完成了,没有错误或警告。
如果您已升级到类路径 'com.android.tools.build:gradle:4.0.0' 将其替换为以前的版本
dependencies {
classpath 'com.android.tools.build:gradle:3.6.3'
}
Run Code Online (Sandbox Code Playgroud)
并更改 gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4- all.zip`
Run Code Online (Sandbox Code Playgroud)
小智 8
尝试构建您的项目
kapt.use.worker.api=false
Run Code Online (Sandbox Code Playgroud)
在您的 gradle.properties 设置文件中
参考:https : //youtrack.jetbrains.com/issue/KT-40750
在经历了很多痛苦之后,我决定尝试annotationProcessor而不是kapt希望它至少显示一条错误消息或任何可以帮助我找到源头的东西。但幸运的是(或不幸的是;因为浪费了时间),它成功构建,没有任何错误。它kapt本身主要是一个错误。所以,试试这个解决方案,它可能会有所帮助。
我有同样的问题。就我而言,问题出在数据库上。我不得不改变这行代码
@Database(entities = [SearchedLocation::class, FavoriteLocation::class], version = 1)
我在数据库中添加了另一个表,但忘记在上面的行中添加表。
我这里也有同样的问题。就我而言,原因是我在我的一个 dagger 模块中忘记了 @Module 注释。
要找到这种 AS 警报的真正问题,有必要深入了解:标题中的消息只是最后一个,显示错误的 1 个或多个原因,选择左侧的根元素,向您显示确切的问题,请检查下面的打印屏幕:
我有同样的问题。让我向您介绍我如何解决问题以及我解决问题的方法的示例,也许您可以获得更大的图景。
解决前
@Entity(tableName = "modules")
data class Module
(
@PrimaryKey val id: Int,
val name: String
)
@Entity(tableName = "sessions")
data class Session
(
@PrimaryKey(autoGenerate = true) var id: Int,
@ColumnInfo(name = "module_id") val moduleId: Int,
@ColumnInfo(name = "start_time") val startTime: String,
@ColumnInfo(name = "end_time") val endTime: String
)
data class ModuleSession
(
@Embedded val module: Module,
@Relation(
parentColumn = "id",
entityColumn = "module_id"
)
val sessions: List<Session>,
@ColumnInfo(name = "is_updated") val isUpdated: Boolean = false // The problem
)
Run Code Online (Sandbox Code Playgroud)
在 DAO
@Transaction
@Query("SELECT * FROM modules")
abstract suspend fun getModuleSession(): List<ModuleSession>
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
Run Code Online (Sandbox Code Playgroud)
所以我挖得更深,发现下面的消息
The columns returned by the query does not have the fields [isUpdated] in com.gmanix.oncampusprototype.Persistence.ModuleSession even though they are annotated as non-null or primitive. Columns returned by the query: [id,name]
public abstract java.lang.Object getModuleSession(@org.jetbrains.annotations.NotNull()
Run Code Online (Sandbox Code Playgroud)
我从 POJO ModuleSession 中删除了 IsUpdated 字段并将其添加到会话表中
更改后
@Entity(tableName = "sessions")
data class Session
(
@PrimaryKey(autoGenerate = true) var id: Int,
@ColumnInfo(name = "module_id") val moduleId: Int,
@ColumnInfo(name = "start_time") val startTime: String,
@ColumnInfo(name = "end_time") val endTime: String,
@ColumnInfo(name = "is_updated") val isUpdated: Boolean = false
)
data class ModuleSession
(
@Embedded val module: Module,
@Relation(
parentColumn = "id",
entityColumn = "module_id"
)
val sessions: List<Session>
)
Run Code Online (Sandbox Code Playgroud)
另一方面,交叉检查是否有任何字段 SELECT语句中是导致问题的嫌疑人,或者您可以用@Ignore
但是,如果您仍然不舒服,您可以发布您的代码。
我希望这可能会有所帮助
当我将ROOM添加到我的应用程序(Kotlin)时,我遇到了同样的问题。我很难找出问题所在,最后发现我正在使用以下内容将ROOM添加到我的应用程序中。
//room
implementation 'android.arch.persistence.room:runtime:1.1.1'
kapt "android.arch.persistence.room:compiler:1.1.1"
Run Code Online (Sandbox Code Playgroud)
所以我用下面的内容改变了上面两行并摆脱了痛苦。
def room_version = "2.2.6"
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
Run Code Online (Sandbox Code Playgroud)
如果对您有帮助,请点击向上按钮:D
就我而言,当从 jcenter() 移动到 mavenCentral() 时,我收到此错误,我的依赖项之一仅在 jcenter() 而不是 mavenCentral() 上可用。所以我在 github 上向所有者提交了相同的问题,并将等待删除 jcenter() 直到它被移动。
| 归档时间: |
|
| 查看次数: |
154179 次 |
| 最近记录: |