我在使用AndroidAnnotations实施SherlockFragmentActivity时遇到了麻烦。 我正在使用AndroidKickstartR bootstrap项目。
当我开始活动时,我收到一个错误:
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>
任何提示都会受到赞赏,因为我现在已经坚持了几个小时的问题:(
干杯!
答案 0 :(得分:1)
修改强>
固定。 似乎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中发布了一个问题。