使用 Jenkins 构建 APK 时出现 kotlin.KotlinNullPointerException(无错误消息)

Posted

技术标签:

【中文标题】使用 Jenkins 构建 APK 时出现 kotlin.KotlinNullPointerException(无错误消息)【英文标题】:kotlin.KotlinNullPointerException (no error message) while building APK using Jenkins 【发布时间】:2020-04-15 22:20:13 【问题描述】:

我是 Jenkins 的新手,正在尝试生成 APK。我收到以下错误:

我已经添加了 git 凭据和 gradle 脚本如下:

注意:我有一个名为“Dev”的构建类型

【问题讨论】:

请不要发布堆栈跟踪的屏幕截图。它甚至被截断,因此完全没有堆栈跟踪。如果没有产生问题的代码,那就像“它不工作”一样。一个人该如何回答呢?你确定为运行jenkins的用户设置了android SDK吗? @MartinZeitler 是的,我确实为用户设置了 Android SDK。此外,从 Android Studio 编译时构建成功。 当你进入那个工作空间目录时,你可以手动运行gradlew.bat assembleDebug吗?如果这应该成功,您可以确定没有为jenkins 用户正确设置某些内容。也可能是所需文件未检入版本控制。 我做了一个新的克隆并运行gradlew.bat assembleDebug,它构建成功。所以,签到是准确的 在 Windows 上,应该有“以不同用户身份运行”...试试这个 cmd 框。当它与您当前的用户而不是 jenkins 用户一起构建时,肯定是环境设​​置不正确。 【参考方案1】:

我在为一个android项目配置jenkins时遇到了这个问题,在格式化我的电脑后终于找到了问题。

gradle 无法找到 Android SDK 所在的位置。 将此添加到 .zshrc(或 .bashrc,无论您使用什么外壳)解决了我的问题:

export ANDROID_HOME=/Users/<your-user-here>/Library/Android/sdk

不要忘记验证上面指定的文件夹是否包含文件夹sdk。

编辑:我在 macOS 环境中执行此操作,您应该在您的操作系统中查找正确的 sdk 位置。

【讨论】:

别忘了在 Jenkins 中设置环境 ANDORID_HOME【参考方案2】:

您在根项目中缺少 local.properties 文件。

它应该有 ndk、sdk 路径

ndk.dir=/home/sudendra/Android/Sdk/ndk/21.0.6113669
sdk.dir=/home/sudendra/Android/Sdk

【讨论】:

【参考方案3】:

在 local.properties 中如何更改您的 SDK 的路径。

应该和:

文件 |设置 |外观与行为 |系统设置 |安卓SDK | Android SDK 路径。

【讨论】:

以上是关于使用 Jenkins 构建 APK 时出现 kotlin.KotlinNullPointerException(无错误消息)的主要内容,如果未能解决你的问题,请参考以下文章

为啥在使用 Cordova 构建 APK 时出现此错误?

构建 APK 时出现错误

构建发布 apk 时出现 Glide 错误

Android:使用 Ant Release 构建 apk 时出现问题

使用 firebaseui:firebase-ui-firestore 构建发布 APK 时出现问题

尝试在单台 Mac 机器上使用并行 Jenkins 管道构建 iOS 应用程序时出现缓存问题