引用库项目并获取NoClassDefFoundError

时间:2014-05-17 22:38:44

标签: java android noclassdeffounderror library-project

我以前见过这个问题的版本,但似乎没有一个确切的解释。我目前正在使用this library处理Android项目并使用Android Studio

我的主项目中有一个方法,我尝试实例化一个DatePickerBuilder对象,该类在我的库项目中定义。

private OnFocusChangeListener openCalendarDialogFocus = new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {


            int resID = com.doomonafireball.betterpickers.R.style.BetterPickersDialogFragment_Light;

            // Here I get the "java.lang.NoClassDefFoundError: com.doomonafireball.betterpickers.datepicker.DatePickerBuilder" error
            // adding com.doomonafireball.betterpickers.datepicker.DatePickerBuilder 
            // to the front of my DatePickerBuilder object does not have any effect

            DatePickerBuilder dpb = new DatePickerBuilder()
                    .setFragmentManager(getSupportFragmentManager())
                    .setStyleResId(resID);
            dpb.show();
        }
    }
};

我相信我已经正确添加了这个库,它不是一个jar文件,所以它被添加为另一个项目。我想知道为什么无法找到库中的这个类,但是对上面这行的引用没有问题。 实际上,在应用程序运行之前,logcat会说

Could not find class 'com.doomonafireball.betterpickers.datepicker.DatePickerBuilder', referenced from method

这看起来很奇怪,因为^是这个类的确切路径,即使它没有在方法中说明。

在我班级的顶部,我也有导入声明

import com.doomonafireball.betterpickers.datepicker.DatePickerBuilder;

但它表示“未使用的导入声明”

我觉得我错过了一些东西但是很接近,任何建议都会非常感激!

0 个答案:

没有答案