安卓编译的坑

940 阅读1分钟

android databinding kotlin A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution 编译错误的查找

在使用databinding  很多时候,编辑APK时错误  都不会直接显示出错位置 

如 e: [kapt] An exception occurred: android.databinding.tool.util.LoggedErrorException: failure, see logs for details. 

日志太难看,使用 gradle 的debug模式方便很多,如下使用  基本都能找到莫名的 databinding 错误

 //================================================================================

A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution

这个错误是最坑爹的,浪费了我五个小时的工作时间,直接运行只报这个错误,没有任何错误地方提示

 

 

 

各种操作后,又不想恢复到上一次的代码,(这次有修改比较多的地方,把最后修改的地方复原的也没作用),,,最终在第二天最清醒的时候折腾到了解决办法

 

 

 先添加 --stacktrace -info 参数

再打包运行

 总算有错误提示出来了

文件编码错误,突然出现的 

 

 修改项目根目录下的gradle.properties,这个文件可以修改编译进程的jvm运行参数,比如最大运行内存,堆大小之类的。没有就建一个。

在 org.gradle.jvmargs= 后面加上-Dfile.encoding=UTF-8 参数,定义所有文件的编码为 UTF-8 问题解决

# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx3096m -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app"s APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
MobSDK.spEdition=FP
android.enableResourceOptimizations=false