第一个应用程序(developer.android.com)错误,有什么问题?

时间:2014-02-26 21:23:33

标签: java android xml eclipse

所以我按照https://developer.android.com/training/basics/firstapp/index.html上的教程试图构建一个应用程序,我现在已经编写了所有代码但是有一些错误。如果重要,我正在使用Eclipse。

activity_main.xml:我在@ string / edit_message上遇到错误 - “错误:错误:找不到与给定名称匹配的资源(在'提示'处,值为'@ string / edit_message')。”

和@ string / button_send - “错误:错误:找不到与给定名称匹配的资源(在'text'处,值为'@ string / button_send')。”

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<EditText android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/edit_message"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage" />

</LinearLayout>

然后是MainActivity.java - 这里我在EditText上得到一个错误editText =(EditText)findViewById |这部分(R.id.edit_message); |说“edit_message无法解析或不是字段”

    package com.example.myfirstapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends Activity {
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";

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

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

/** Called when the user clicks the Send button */
public void sendMessage(View view) {

    Intent intent = new Intent(this, DisplayMessageActivity.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);


    // Do something in response to button

}
}

接下来,在strings.xml上,我得到:“在此行找到多个注释:      - 错误:解析XML时出错:格式不正确      (无效令牌)“在_settings旁边”&gt;设置 代码:

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

<string name="app_name">My First App</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="title_activity_display_message">Mitt meddelande</string>

</resources>
_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
</resources>

然后在@ string / hello_world上的activity_display_message.xml上我得到“错误:错误:找不到与给定名称匹配的资源(在'text'处,值为'@ string / hello_world')。”

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".DisplayMessageActivity" >

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />

</RelativeLayout>

最后,在DisplayMessageActivity.java上,(R.layout。| this part - activity_display_message)|我得到“activity_display_message无法解析或不是字段”

    package com.example.myfirstapp;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.view.MenuItem;

public class DisplayMessageActivity extends Activity {

@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_display_message);

    // Make sure we're running on Honeycomb or higher to use ActionBar APIs
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        // Show the Up button in the action bar.
        getActionBar().setDisplayHomeAsUpEnabled(true);
    }
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        return true;
    }
    return super.onOptionsItemSelected(item);
}
}

很抱歉这篇文章篇幅很长而且可能很混乱,但我是新手并试图学习,所以我真的很想知道这些错误是什么!

提前致谢!

5 个答案:

答案 0 :(得分:2)

按钮点击方式错误 s的资金不小。

public void SendMessage(View view) {
            ^

https://stackoverflow.com/a/11970085/2337837

答案 1 :(得分:2)

您忘记设置此元素的ID:

<EditText android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/edit_message"
/>

添加android:id="@+id/edit_message"可以解决您的问题。

答案 2 :(得分:1)

这一部分就是搞砸了所有事情。

</resources>
_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
</resources>

如果您的任何文件中包含错误的XML,则不会正确包含任何XML文件,因此会出现大量错误。我不确定你要对_settings">Settings</string>做什么,但要么必须解决这个问题或将其删除。

编辑:实际上,看一下教程,你将不得不删除第一个</resources>,然后删除我之前提到的那一行。它应该在那之后工作。

答案 3 :(得分:1)

你应该在你的资源中添加这个

<string name="edit_message">Something here</string>
<string name="button_send">Something here</string>

编辑:并修复此问题:

设置

答案 4 :(得分:1)

你的String资源文件应如下所示:

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

<string name="app_name">My First App</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="title_activity_display_message">Mitt meddelande</string>
<string name="edit_message">edit msg</string>
<string name="button_send">send</string>

</resources>

你错过了一些项目并且有格式错误