2019-1-21--25问题及解决方案

本文详细解析了Android开发中遇到的NoClassDefFoundError错误,尤其在5.0以下系统中的常见原因及解决方案,包括如何正确配置多dex支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android java.lang.NoClassDefFoundError

5.0系统以下手机运行时报错误:Android java.lang.NoClassDefFoundError
问题原因:

此错误与java.lang.ClassNotfoundException不同,java.lang.ClassNotfoundException是因为Java虚拟机在编译时未找到错误类。而
java.lang.NoClassDefFoundError是因为java虚拟机在编译时已经找到了该类,但是在运行时不能找到合适的类。

解决方法:

首先查看是否是在任何版本的手机上都会出现此问题,如果是,那么可能原因有:  
1、因为包名错误引起的。  
2、加载了该类但是运行时该类不可用,比如:在app中引用了lib库,lib库中通过implementation依赖了第三方库,那么当我在app中调用第三方库中的类时,则会出现此错误  

如果只有5.0以下手机会出现此情况,那么是因为65535问题,解决方案如下:
[link](https://developer.android.com/studio/build/multidex)

注意:出现此问题,即使没有引入application,也要创建一个新的application继承MultiDexApplication才行

gitlab派生项目达到上限

使用gitlab时,如果派生的库达到上限而又不能申请增加派生库数量时,可以选择删除不需要经常使用的库,具体方法如下:

1、点击右上角的个人头像,选择Profile  
2、进去后点击Personal projects,进入后可以看到自己已经派生的所有项目
3、点击选择要删除的库,进入后选择Settings  
4、点击Remove fork relationship,这里会让你再把库名字输入进去来进行确认操作,输入完成后点击Confirm进行确认  
5、可以看到会出一个提示:派生关系已经被删除,到这里还没有结束
6、此页面的最下方有一个Remove project,点击remove后,该库正式从我们的派生项目中删除,之后就可以继续派生其他项目(此处删除的只是我们的派生库,并不是将库从gitlab中删除,通常情况下我们也没有这个权限,所以放心大胆的删除就好了)


表:Prices +---------------+---------+ | Column Name | Type | +---------------+---------+ | product_id | int | | start_date | date | | end_date | date | | price | int | +---------------+---------+ (product_id,start_date,end_date) 是 prices 表的主键(具有唯一值的列的组合)。 prices 表的每一行表示的是某个产品在一段时期内的价格。 每个产品的对应时间段是不会重叠的,这也意味着同一个产品的价格时段不会出现交叉。 表:UnitsSold +---------------+---------+ | Column Name | Type | +---------------+---------+ | product_id | int | | purchase_date | date | | units | int | +---------------+---------+ 该表可能包含重复数据。 该表的每一行表示的是每种产品的出售日期,单位和产品 id。 编写解决方案以查找每种产品的平均售价。average_price 应该 四舍五入到小数点后两位。如果产品没有任何售出,则假设其平均售价为 0。 返回结果表 无顺序要求 。 结果格式如下例所示。 示例 1: 输入: Prices table: +------------+------------+------------+--------+ | product_id | start_date | end_date | price | +------------+------------+------------+--------+ | 1 | 2019-02-17 | 2019-02-28 | 5 | | 1 | 2019-03-01 | 2019-03-22 | 20 | | 2 | 2019-02-01 | 2019-02-20 | 15 | | 2 | 2019-02-21 | 2019-03-31 | 30 | +------------+------------+------------+--------+ UnitsSold table: +------------+---------------+-------+ | product_id | purchase_date | units | +------------+---------------+-------+ | 1 | 2019-02-25 | 100 | | 1 | 2019-03-01 | 15 | | 2 | 2019-02-10 | 200 | | 2 | 2019-03-22 | 30 | +------------+---------------+-------+ 输出: +------------+---------------+ | product_id | average_price | +------------+---------------+ | 1 | 6.96 | | 2 | 16.96 | +------------+---------------+ 解释: 平均售价 = 产品总价 / 销售的产品数量。 产品 1 的平均售价 = ((100 * 5)+(15 * 20) )/ 115 = 6.96 产品 2 的平均售价 = ((200 * 15)+(30 * 30) )/ 230 = 16.96
最新发布
03-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值