我在使用AndroidAnnotations实现SherlockFragmentActivity时遇到麻烦。
我正在使用AndroidKickstartR引导项目。

当我开始活动时,我收到一个错误:

java.lang.ClassNotFoundException: pl.itify.fichas.app.set.FichasSetsNewFragment_


在提取片段之前,该应用程序运行良好,因此我认为问题不在于AndroidAnnotations配置。

我已经尝试将SherlockFragment更改为Fragment或v4.Fragment,并且错误是相同的。

我使用Maven构建应用程序。我检查了目标文件夹,是否正确生成了pl.itify.fichas.app.set.FichasSetsNewFragment_类,并且该类也包含在.jar文件中。

我有三节课:

FichasSetsActivity:

@EActivity(R.layout.fichas_sets_activity)
@OptionsMenu(R.menu.fichas_sets_activity)
public class FichasSetsActivity extends SherlockFragmentActivity
{

    @FragmentById(R.id.fichas_set_list_new_fragment)
    FichasSetsNewFragment fichasSetsNewFragment;

    @FragmentById(R.id.fichas_set_list_list_fragment)
    FichasSetsListFragment fichasSetsListFragment;

}


FichasSetsNewFragment:

@EFragment(R.layout.fichas_sets_new_fragment)
public class FichasSetsNewFragment extends SherlockFragment {

}


FichasSetsListFragment:

@EFragment(R.layout.fichas_sets_list_fragment)
public class FichasSetsListFragment extends SherlockFragment {

}


fichas_sets_activity.xml布局文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <fragment
        android:id="@+id/fichas_set_list_new_fragment"
        android:name="pl.itify.fichas.app.set.FichasSetsNewFragment_"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <fragment
        android:id="@+id/fichas_set_list_list_fragment"
        android:name="pl.itify.fichas.app.set.FichasSetsListFragment_"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>


由于我已经困扰了几个小时了,所以任何提示都将不胜感激:(

干杯!

最佳答案

编辑:

固定。
似乎AndroidKickstartR Proguard配置会过滤掉所有片段,因此必须在proguard.cfg中引入较小的更改,而不是删除它们:

-keep class android.support.v4.** { *; }

-keep public class * extends android.support.v4.**
-keep public class * extends android.app.Fragment


我已经在AndroidKickstartR的Github中发布了一个问题。

10-05 18:24