使用android-betterpickers库时获取java.lang.NoClassDefFoundError

时间:2014-08-10 07:11:55

标签: android eclipse noclassdeffounderror better-pickers

每当我尝试使用利用android-betterpickers库的片段时,都会出现以下错误。

我的预测指出 android-betterpickers 作为我项目的库。有人知道这里会发生什么吗?

08-10 02:06:39.152: E/AndroidRuntime(2628): java.lang.NoClassDefFoundError: com.mavdev.focusoutfacebook.fragments.addablock.selecttime.Fragment_time_addblock
08-10 02:06:39.152: E/AndroidRuntime(2628):     at com.mavdev.focusoutfacebook.fragments.addablock.Fragment_AddaBlock.displayView(Fragment_AddaBlock.java:224)
08-10 02:06:39.152: E/AndroidRuntime(2628):     at com.mavdev.focusoutfacebook.fragments.addablock.Fragment_AddaBlock.access$0(Fragment_AddaBlock.java:211)
08-10 02:06:39.152: E/AndroidRuntime(2628):     at com.mavdev.focusoutfacebook.fragments.addablock.Fragment_AddaBlock$ListItemClickListener.onItemClick(Fragment_AddaBlock.java:293)
08-10 02:06:39.152: E/AndroidRuntime(2628):     at android.widget.AdapterView.performItemClick(AdapterView.java:298)
08-10 02:06:39.152: E/AndroidRuntime(2628):     at android.widget.AbsListView.performItemClick(AbsListView.java:1100)
08-10 02:06:39.152: E/AndroidRuntime(2628):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:2788)
08-10 02:06:39.152: E/AndroidRuntime(2628):     at android.widget.AbsListView$1.run(AbsListView.java:3463)
08-10 02:06:39.152: E/AndroidRuntime(2628):     at android.os.Handler.handleCallback(Handler.java:730)
08-10 02:06:39.152: E/AndroidRuntime(2628):     at android.os.Handler.dispatchMessage(Handler.java:92)
08-10 02:06:39.152: E/AndroidRuntime(2628):     at android.os.Looper.loop(Looper.java:137)
08-10 02:06:39.152: E/AndroidRuntime(2628):     at android.app.ActivityThread.main(ActivityThread.java:5103)
08-10 02:06:39.152: E/AndroidRuntime(2628):     at java.lang.reflect.Method.invokeNative(Native Method)
08-10 02:06:39.152: E/AndroidRuntime(2628):     at java.lang.reflect.Method.invoke(Method.java:525)
08-10 02:06:39.152: E/AndroidRuntime(2628):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
08-10 02:06:39.152: E/AndroidRuntime(2628):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-10 02:06:39.152: E/AndroidRuntime(2628):     at dalvik.system.NativeStart.main(Native Method)

我只是从我的一个片段中扩展了一个android-betterpickers类,如下所示,只是没有显示片段中的onCreateView等其他函数:

public class Fragment_time_addblock extends Fragment DatePickerDialogHandler {


@Override
public void onDialogDateSet(int reference, int year, int monthOfYear,
        int dayOfMonth) {
    // TODO Auto-generated method stub

}


}

问题仅在手机/模拟器上运行时发生,但能够编译项目并成功运行,只有当我尝试打开此片段时,应用程序才会崩溃。

enter image description here

我可以尝试解决此问题?

2 个答案:

答案 0 :(得分:2)

检查您是否在Java Build Path > Order and Export tab

中导出了该库

答案 1 :(得分:0)

讨厌回答我自己的问题,但我会写下我所做的,而不是最优雅的解决方案

我将库中正确的类和接口复制到我自己的项目中。我认为这个问题与交叉依赖关系有关,因为我使用了几个引用其他公共库的库。

将代码放入我自己的项目中也可以让我保持较小的apk大小。