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 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 に答える