2013-03-06 218 views
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):致命異常:主 03-06 3點33分:05.034:E/AndroidRuntime(6336):java.lang.RuntimeException:無法啓動活動ComponentInfo {com.example.sliderexample/com.example.sliderexample.FragmentControllers.LeftRightSliderFragmentController}:android.content.res.Resources $ NotFoundException:Resource ID#0xa

問題是我不知道這個錯誤發生在哪裏知道如何使用調試器?....我還在堆棧上搜索了這些,似乎沒有什麼能夠幫助我。

+0

對於調試:設置調試點在課程左側,旁邊的行號通過雙擊。在設置其中的一些之後,在調試模式下運行程序,然後按下左邊的第二個黃色箭頭逐行顯示您的代碼。只要做到這一點,並繼續研究變量。如果在變量框中出現異常,你就知道你需要改變的地方。你的代碼:也許你只是發佈到較少的代碼或我沒有得到它,但在第一個代碼框中,你調用一個名爲「LeftRightSliderFragmentController」的方法,並推動一個int變量,但不要在裏面使用它?!?! – 2013-03-10 22:22:18

回答

1

帶參數的構造函數永遠不會被調用。所以mTitleRes等於0,android無法找到這個資源。您不應該使用構造函數將參數傳遞給活動。只有默認的構造函數會被調用。您應該使用基本活動中的默認值初始化mTitleRes,或者使基本活動抽象,創建抽象方法getTitleRes(),並在LeftRightSliderFragmentController中重寫它。然後使用setTitle(getTitleRes())。或者只是在後代初始化mTitleRes的其他值。永恆取決於你如何使用這些活動。無論如何,當創建活動時,LeftRightSliderFragmentController(int titleRes)將不會被調用。

+0

好的,如果你所說的話現在我得到了與這個變化相同的錯誤,#0xa?我也搜尋了那個錯誤。我所做的只是設置了setTitle(「Hello」)的默認值;所以構造函數不需要運行。 – 2013-03-06 08:33:42

+0

然後問題可能在別的地方。嘗試使用逐行調試來找出錯誤的位置。 – 2013-03-06 08:47:24

1

刪除您

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

相反,使用

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

,如果你想使用該字符串值,使用下面的語句來獲取字符串

getString(R.string.left_and_right); 
相關問題