当前位置: 首页 > 知识库问答 >
问题:

java.lang.NoSuchFieldError由第三方模块引起

微生青青
2023-03-14

我已经在我的Android项目中集成了一个第三方库。该库以. aar文件的形式提供。

它的实现是一个简单的单行程序,它在我的MainActivity中创建了一个customdialog。

但每当它试图创建对话框时,我的应用程序就会崩溃

java.lang.NoSuchFieldError: de.thirdparty.lib.R$id.neverParticipateButton
  at de.thirdparty.lib.views.DialogBuilder.buildView(DialogBuilder.java:97)

我在一个新的空android项目中实现了这个库,它按计划工作。所以看起来和我的项目有冲突。

我在另一篇博文(这里)中读到,当project和library意外地将相同的名称用于布局时,可能会导致这种情况。但是,当我在构建文件夹中检查库的代码时,我找不到任何使用相同名称的布局。也不是ID或抽绳。

是否有人知道还有什么会导致此错误,或者建议如何调试

仁慈的问候基督徒

共有1个答案

戚阳
2023-03-14

问题是,另一个已经集成到我的应用程序中的第三方库与新库的布局名称相同。。。在这里,除了通知libs的开发人员使用前缀,我无能为力。

 类似资料:
  • 在前面,我们介绍了一个优秀的第三方库 — requests,本章再介绍两个第三方库: celery click 其中: celery 是一个强大的分布式任务队列,通常用于实现异步任务; click 是快速创建命令行的神器;

  • Click 是 Flask 的开发团队 Pallets 的另一款开源项目,它是用于快速创建命令行的第三方模块。我们知道,Python 内置了一个 Argparse 的标准库用于创建命令行,但使用起来有些繁琐,Click 相比于 Argparse,就好比 requests 相比于 urllib。 快速使用 Click 的使用大致有两个步骤: 使用 @click.command() 装饰一个函数,使之

  • 在程序的运行过程中,我们经常会碰到一些耗时耗资源的操作,为了避免它们阻塞主程序的运行,我们经常会采用多线程或异步任务。比如,在 Web 开发中,对新用户的注册,我们通常会给他发一封激活邮件,而发邮件是个 IO 阻塞式任务,如果直接把它放到应用当中,就需要等邮件发出去之后才能进行下一步操作,此时用户只能等待再等待。更好的方式是在业务逻辑中触发一个发邮件的异步任务,而主程序可以继续往下运行。 Cele

  • 除了内建的模块外,Python还有大量的第三方模块。 基本上,所有的第三方模块都会在PyPI - the Python Package Index上注册,只要找到对应的模块名字,即可用easy_install或者pip安装。 本章介绍常用的第三方模块。

  • 在Python中,安装第三方模块,是通过setuptools这个工具完成的。Python有两个封装了setuptools的包管理工具:easy_install和pip。目前官方推荐使用pip。 如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了。 如果你正在使用Windows,请参考安装Python一节的内容,确保安装时勾选了pip和Add python.exe to Path。

  • 除了内建的模块外,Python还有大量的第三方模块。 基本上,所有的第三方模块都会在PyPI - the Python Package Index上注册,只要找到对应的模块名字,即可用pip安装。 此外,在安装第三方模块一节中,我们强烈推荐安装Anaconda,安装后,数十个常用的第三方模块就已经就绪,不用pip手动安装。 本章介绍常用的第三方模块。