2

我在我设置的类中遇到了这个错误,我是 android 开发的新手,希望能在 eclipse 中找到如何调试这个错误。我看过很多关于这个问题的堆栈溢出帖子,但没有一个能帮助我解决这个问题。

public class LeftRightSliderFragmentController extends BaseSliderFragmentController
{
    public LeftRightSliderFragmentController()
    {
    super();
    }
    public LeftRightSliderFragmentController(int titleRes)
    {

    super(R.string.left_and_right);
    }

在我的 strings.xml

我有

<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name="app_name">SliderExample</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="left_and_right">Left and Right</string>
</resources>

在我的基类中

public class BaseSliderFragmentController extends SlidingFragmentActivity
{

   private int mTitleRes;
   protected RSSFeedFragmentController mFrag;

    public BaseSliderFragmentController(int titleRes)
    {
       mTitleRes = titleRes;
    }

    public BaseSliderFragmentController()
    {
    // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
            //New Change EDIT
            String h = "Hello"
    setTitle(h);

基本上我不确定为什么会出现这个问题,我也不确定这个问题会出现在哪里。我想知道是否有办法调试到发生这种情况的代码行,以便我进行调查。我相信这可能与 setTitle 有关吗?

03-06 02:58:04.195: E/AndroidRuntime(4879): FATAL EXCEPTION: main
03-06 02:58:04.195: E/AndroidRuntime(4879): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sliderexample/com.example.sliderexample.FragmentControllers.LeftRightSliderFragmentController}: android.content.res.Resources$NotFoundException: String resource ID #0x0
03-06 02:58:04.195: E/AndroidRuntime(4879):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2088)
03-06 02:58:04.195: E/AndroidRuntime(4879):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2113)
03-06 02:58:04.195: E/AndroidRuntime(4879):     at android.app.ActivityThread.access$700(ActivityThread.java:139)
03-06 02:58:04.195: E/AndroidRuntime(4879):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1224)

编辑:更改代码新结果新错误

03-06 03:33:05.034: E/AndroidRuntime(6336): 致命异常: main 03-06 03:33:05.034: E/AndroidRuntime(6336): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com. example.sliderexample/com.example.sliderexample.FragmentControllers.LeftRightSliderFragmentController}:android.content.res.Resources$NotFoundException:资源 ID #0xa

问题是我不知道这个错误发生在哪里任何人都知道如何使用调试器到达该行?....我也在堆栈上搜索了这个似乎没有什么可以帮助我。

4

2 回答 2

1

删除您的

<string name="left_and_right">Left and Right</string>

相反,使用

<integer name="integer_name">integer_value</integer>

如果要使用该字符串值,请使用以下语句获取字符串

getString(R.string.left_and_right);
于 2013-03-06T08:35:15.477 回答
1

你的带参数的构造函数永远不会被调用。所以mTitleRes等于0,android找不到这个资源。您不应该使用构造函数将参数传递给活动。只会调用默认构造函数。您应该在基本活动中使用默认值初始化 mTitleRes,或者使基本活动抽象,创建抽象方法 getTitleRes(),并在 LeftRightSliderFragmentController 中覆盖它。然后使用 setTitle(getTitleRes())。或者只是用后代中的其他值初始化 mTitleRes。一切都取决于您如何使用此活动。无论如何,创建活动时不会调用 LeftRightSliderFragmentController(int titleRes) 。

于 2013-03-06T08:23:21.807 回答