Java 为什么Timber在尝试使用a 3状态复选框时给我一个NoClassDefFoundError?

Java 为什么Timber在尝试使用a 3状态复选框时给我一个NoClassDefFoundError?,java,android,kotlin,checkbox,Java,Android,Kotlin,Checkbox,我按照在的安装说明进行了操作,并能够构建解决方案: 在main build.gradle中: repositories { maven { url "https://jitpack.io" } } dependencies { ... implementation 'com.github.sephiroth74:Tri-State-Checkbox:v1.0.0@aar' ... } 和应用内build.gradle: repositories { m

我按照在的安装说明进行了操作,并能够构建解决方案:

在main build.gradle中:

repositories {
    maven { url "https://jitpack.io" }
}
dependencies {
    ...
    implementation 'com.github.sephiroth74:Tri-State-Checkbox:v1.0.0@aar'
    ...
}
和应用内build.gradle:

repositories {
    maven { url "https://jitpack.io" }
}
dependencies {
    ...
    implementation 'com.github.sephiroth74:Tri-State-Checkbox:v1.0.0@aar'
    ...
}
但当我尝试运行该应用程序时,会出现以下错误:

2020-02-27 14:49:01.800 14357-14357/com.software.test E/AndroidRuntime:致命异常:主进程:com.software.test,PID:14357 java.lang.NoClassDefFoundError:解析失败:Ltimber/log/Timber;位于java.lang.reflect.Constructor.newInstance0(本机方法)的java.lang.reflect.Constructor.newInstance0(本机方法)位于android.view.LayoutInflater.createView(LayoutInflater.java:852)的android.view.LayoutInflater.createView(LayoutInflater.java:852)的android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004)在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)在android.view.LayoutInflater.rInflate(LayoutInflater.java:1121)在android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)在android.view.LayoutInflater.java:680)在android.view.LayoutInflater.flate(layoutiner.java:532)在androidx.appcompat.app.appcompatedelegateimpl.setContentView(appcompatedelegateimpl.java:469)的androidx.view.LayoutInflater.inflate(LayoutInflater.java:479)中充气


我还尝试按照他的存储库中的安装说明进行操作,但如果按照这些说明进行操作,我甚至无法获得要构建的解决方案。因此,我暂时放弃了这条路线。

从依赖项声明中删除
@aar
。这个后缀意味着您不希望可传递的依赖项在您的项目中自动作为依赖项拉入,在本例中,是Timber。这就是为什么您必须手动分别添加木材才能使其工作

依我看,公共库不应该包含日志库依赖项!应该在项目的Github页面上打开一个问题


看起来Github上的库有一个完全不显示复选框的选项,因此如果这个选项没有被修复,您可能需要寻找另一个解决方案。

看起来像这个
三态复选框
使用
木材
。你的应用程序中有吗?@demigood我也把它放在我的依赖项中,当我这样做时,应用程序运行正常,但是没有复选框。“但是没有复选框”这是一个单独的主题:)将Timber放在依赖项中,并找出原因?@Demigood我同意这是一个单独的主题:)当我将Timber放在依赖项中时,我已经查找了任何错误或任何东西,但没有看到任何东西——不过我会再试一次。我只是认为我不必添加依赖项,因为它是库的依赖项。谢谢!我不知道那个后缀是什么意思。我一直在关注这个问题,并为此作出了贡献。但是我想我可能会通过stackoverflow得到更多反馈,并决定发布这个问题。你的目标是低于API 21吗?不,我的minSdkVersion是23,我的targetSdkVersion是29删除@aar修复了NoClassDefFoundError。显然,在创建视图时,必须首先将checkBox1.setChecked(false,false)作为第一件事。