解决问题 Cause: buildOutput.apkData must not be null

当Android Studio升级到3.5以上版本,且Gradle版本为5.4.1-all时,打包可能遇到Cause:buildOutput.apkDatamustnotbenull错误。解决方法在于更改导出包的DestinationFolder路径,从默认的module路径更改为project路径。

 

 

 

关于AS升级到3.5以上,gradle版本升级到了5.4.1-all的时候,打包会出现Cause: buildOutput.apkData must not be null的错误。

网上都是clean project \ rebuild project

附上解决视频:

https://www.youtube.com/watch?v=BWUFWzG-kag

 

在build apk 最后一步的时候,需要选择release版本,但是最主要的是,打包流程变了,导出包的Desination Folder路径要改变!默认选的是module的路径(e.g.  E:\projectxxxx\app),选择为project路径(e.g.  E:\projectxxxx)就解决了!!!
 

 

 

 

 

你遇到的错误: ``` Error evaluating expression 'sourceData.batteryId != null'. Cause: source is null for getProperty(null, "batteryId") ``` ### ❓错误原因: 这个错误说明你在 MyBatis 的 `<if>` 条件判断中引用了 `sourceData.batteryId`,但 `sourceData` 是 `null`,导致 MyBatis 无法访问 `batteryId` 属性。 这是 MyBatis 使用 OGNL 表达式时的常见问题,尤其是在动态 SQL 中判断嵌套对象属性时。 --- ### ✅ 解决方案: #### ✅ 方法一:使用 `<if test="sourceData != null and sourceData.batteryId != null">` 在访问嵌套属性前,**先判断对象是否为 null**,避免空指针异常。 ```xml <if test="sourceData != null and sourceData.batteryId != null"> AND battery_id = #{sourceData.batteryId} </if> ``` --- #### ✅ 方法二:使用 `@MapKey` 或 `@Param` 注解明确参数名(适用于 Java 代码传参) 如果你在 Mapper 接口中使用了多个参数对象,建议用 `@Param` 明确命名参数: ```java List<BatteryInfo> selectByCondition(@Param("sourceData") BatteryInfo sourceData); ``` 然后在 XML 中使用: ```xml <if test="sourceData != null and sourceData.batteryId != null"> AND battery_id = #{sourceData.batteryId} </if> ``` --- #### ✅ 方法三:使用 `Map` 传参(适合动态参数) 你可以将参数封装为 `Map`,这样可以避免对象为 `null` 导致的问题: ```java Map<String, Object> params = new HashMap<>(); params.put("sourceData", sourceData); // sourceData 可能为 null ``` XML 中同样使用: ```xml <if test="sourceData != null and sourceData.batteryId != null"> AND battery_id = #{sourceData.batteryId} </if> ``` --- ### ✅ 总结 | 问题 | 原因 | 解决方法 | |------|------|----------| | `source is null for getProperty(null, "batteryId")` | 访问了 `null` 对象的属性 | 在访问嵌套属性前先判断对象是否为 null | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值