【问题标题】:android - FATAL EXCEPTION: main unable to start Activityandroid - 致命异常:主要无法启动 Activity
【发布时间】:2013-12-07 22:14:35
【问题描述】:

我的原木猫

12-07 16:50:54.896: E/AndroidRuntime(1697): FATAL EXCEPTION: main
12-07 16:50:54.896: E/AndroidRuntime(1697): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.blackcat.blackcattourorganizer/com.blackcat.blackcattourorganizer.showBudgetActivity}: android.content.res.Resources$NotFoundException: String resource ID #0xc80
12-07 16:50:54.896: E/AndroidRuntime(1697):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
12-07 16:50:54.896: E/AndroidRuntime(1697):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
12-07 16:50:54.896: E/AndroidRuntime(1697):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
12-07 16:50:54.896: E/AndroidRuntime(1697):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
12-07 16:50:54.896: E/AndroidRuntime(1697):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-07 16:50:54.896: E/AndroidRuntime(1697):     at android.os.Looper.loop(Looper.java:137)
12-07 16:50:54.896: E/AndroidRuntime(1697):     at android.app.ActivityThread.main(ActivityThread.java:5103)
12-07 16:50:54.896: E/AndroidRuntime(1697):     at java.lang.reflect.Method.invokeNative(Native Method)
12-07 16:50:54.896: E/AndroidRuntime(1697):     at java.lang.reflect.Method.invoke(Method.java:525)
12-07 16:50:54.896: E/AndroidRuntime(1697):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
12-07 16:50:54.896: E/AndroidRuntime(1697):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
12-07 16:50:54.896: E/AndroidRuntime(1697):     at dalvik.system.NativeStart.main(Native Method)
12-07 16:50:54.896: E/AndroidRuntime(1697): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0xc80
12-07 16:50:54.896: E/AndroidRuntime(1697):     at android.content.res.Resources.getText(Resources.java:239)
12-07 16:50:54.896: E/AndroidRuntime(1697):     at android.widget.TextView.setText(TextView.java:3844)
12-07 16:50:54.896: E/AndroidRuntime(1697):     at com.blackcat.blackcattourorganizer.showBudgetActivity.onCreate(showBudgetActivity.java:50)
12-07 16:50:54.896: E/AndroidRuntime(1697):     at android.app.Activity.performCreate(Activity.java:5133)
12-07 16:50:54.896: E/AndroidRuntime(1697):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
12-07 16:50:54.896: E/AndroidRuntime(1697):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
12-07 16:50:54.896: E/AndroidRuntime(1697):     ... 11 more

现在确定未打开的 Activity 的代码

public class showBudgetActivity extends Activity {

TextView sb1, sb2, sb3, sb4, sb5, sb_r;

Button showBudget_backButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.showbudget_activity);

    sb_r = (TextView) findViewById(R.id.textView_showBudget_rBudget);

    sb1 = (TextView) findViewById(R.id.textView_SB_H2);
    sb2 = (TextView) findViewById(R.id.textView_SB_T2);
    sb3 = (TextView) findViewById(R.id.textView_SB_F2);
    sb4 = (TextView) findViewById(R.id.textView_SB_S2);
    sb5 = (TextView) findViewById(R.id.textView_SB_O2);

    showBudget_backButton = (Button) findViewById(R.id.button_showBudget);


    tourDB gettingInfo = new tourDB(this);

    gettingInfo.open();

    long getlastID = gettingInfo.getMaxID();

    int prev_remainbudget = gettingInfo.getPrevRemainBudget(getlastID);

    int prev_rent = gettingInfo.getRentPrev(getlastID);
    int prev_transport = gettingInfo.getTransportPrev(getlastID);
    int prev_food = gettingInfo.getFoodPrev(getlastID);
    int prev_shopping = gettingInfo.getShoppingPrev(getlastID);
    int prev_other = gettingInfo.getOtherPrev(getlastID);

    gettingInfo.close();

    sb_r.setText(prev_remainbudget);

    sb1.setText(String.valueOf(prev_rent));
    sb2.setText(String.valueOf(prev_transport));
    sb3.setText(String.valueOf(prev_food));
    sb4.setText(String.valueOf(prev_shopping));
    sb5.setText(String.valueOf(prev_other));

    showBudget_backButton.setOnClickListener(new Button.OnClickListener() {  
        public void onClick(View v)
            {
                Intent openonGoingActivity = new Intent("com.blackcat.blackcattourorganizer.ONGOINGACTIVITY");
                startActivity(openonGoingActivity);
            }
         });


    //fetchdatafromDataBase();
}

/*private void fetchdatafromDataBase() {

}*/
}

现在这是我调用 Activity 的类

public class onGoingActivity extends ListActivity{

    static final String onGoingList[] = {"Enter Expenses","Remaining Budget","Click Photos","Close Tour Profile","Back"};


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setListAdapter(new onGoingArrayAdapter(this, onGoingList));
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {

        super.onListItemClick(l, v, position, id);

        String positionItem = (String) getListAdapter().getItem(position);


        if (positionItem.contentEquals("Enter Expenses")) {

            //mainMenuActivityItem = "createNewActivity_1";

            Intent openActivity = new Intent("com.blackcat.blackcattourorganizer.EXPENSELISTACTIVITY");
            startActivity(openActivity);

        }else if (positionItem.contentEquals("Remaining Budget")) {

            //mainMenuActivityItem = "onGoingActivity";

            Intent openActivity = new Intent("com.blackcat.blackcattourorganizer.SHOWBUDGETACTIVITY");
            startActivity(openActivity);

        }else if (positionItem.contentEquals("Click Photos")) {

            //mainMenuActivityItem = "tourListActivity";

            Intent openActivity = new Intent("com.blackcat.blackcattourorganizer.PHOTOUPACTIVITY");
            startActivity(openActivity);

        }else if (positionItem.contentEquals("Famous Tourist Attractions")) {

            //mainMenuActivityItem = "famousTourActivity";

            Intent openActivity = new Intent("com.blackcat.blackcattourorganizer.CLOSEPROFILEACTIVITY");
            startActivity(openActivity);

        }else if (positionItem.contentEquals("Back")) {

            //mainMenuActivityItem = "alarmSetActivity";

            Intent openMainActivity = new Intent("com.blackcat.blackcattourorganizer.MAINACTIVITY");
            startActivity(openMainActivity);
        }

        /*

        if (selectExpense == "back"){
            Intent openMainActivity = new Intent("com.blackcat.blackcattourorganizer.MAINACTIVITY");
            startActivity(openMainActivity);
        }
        else {

        try{
            Class onGoingClass = Class.forName("com.blackcat.blackcattourorganizer." + selectExpense);
            Intent selectExpenseIntent = new Intent(onGoingActivity.this, onGoingClass);
            startActivity(selectExpenseIntent);
        }catch(ClassNotFoundException e){
            e.printStackTrace();
            }
        }*/
    }
}

清单非常好。

【问题讨论】:

  • 您的错误似乎来自未找到的资源。你可以分享你的xml文件的代码吗?
  • Xml 文件太长...
  • @mhtamun 你试过我提出的解决方案了吗?

标签: android android-intent fatal-error


【解决方案1】:

你忘了给你的sb_r打电话String.valueOf()TextView

简单地做:

sb_r.setText(String.valueOf(prev_remainbudget));

TextView 的setText() 方法试图找到一个与该数字匹配的资源id,如果你给它一个任意的int 值,它就找不到资源,因此Exception

【讨论】:

  • 非常感谢先生。是的,我确实尝试了您提出的解决方案,并且有效。 @A-C
  • @mhtamun 既然我的回答解决了你的问题,你应该是一个好的 StackOverflow 用户并通过clicking the hollowed out checkmark so it turns green 接受它。你得到了一些代表,你表明这个答案是正确的。
【解决方案2】:

您似乎引用了一个不存在的资源,请检查您的代码中的所有 R.x 使用情况是否存在于您的资源中

 android.content.res.Resources$NotFoundException: String resource ID #0xc80

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    • 2012-06-02
    • 2012-09-08
    • 2013-12-22
    相关资源
    最近更新 更多