R无法解析为变量 - Hello World

时间:2011-12-14 02:26:56

标签: java android import

我知道很多人都遇到过这个问题而且我搜索了Google / Stack Overflow,但我仍然无法弄清楚我做错了什么。

package HelloWorld;
import android.app.Activity;
import android.os.Bundle;    
import android.widget.TextView;

public class HelloWorldActivity extends Activity {
    /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
 //   TextView tv = new TextView(this);
 //   String hello = "Hello World!";
 //   tv.setText(hello);
 //   setContentView(tv);
}
}

我尝试搜索不必要的import android.R;语句,以及构建/清理/刷新/等,但我似乎无法弄明白。也许这是我安装SDK的方式的问题?我不认为有,但我对此很新,所以我可能在某个地方犯了一个大错。

另外,我收到此错误:

[2011-12-13 18:18:46 - com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper] Parser exception for C:\Users\MYNAME\Android Development\Hello World\Hello World\AndroidManifest.xml: The processing instruction target matching "[xX][mM][lL]" is not allowed.

任何人都可以帮助我吗?谢谢!

编辑:我的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="HelloWorld Mylove"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".HelloWorldActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

2 个答案:

答案 0 :(得分:4)

在清单中查看此行(在<manifest />标记的开头)

package="HelloWorld Mylove"

这不是有效的包名,必须更改。通常,包名称由小写单词组成,用点分隔,例如:

com.hello.world

Naming a Package。将其更改为有效名称。

由于这总体上有点工作,因为你必须在不同的地方改变它(有时因为某种原因而失败),我建议你通过以下方式创建一个新项目eclipse中新的android项目向导。这将在步骤4中询问您是否包名。请确保遵循上述命名约定。你应该得到几乎相同的代码。或者,您可以尝试在项目资源管理器中右键单击项目,然后选择Android Tools -> Rename Application Package

¹清单本身,存储* .java文件的文件夹,源文件中的package语句

答案 1 :(得分:3)

The processing instruction target matching "[xX][mM][lL]" is not allowed.暗示您的XML声明(<?xml version="1.0" encoding="utf-8"?>)被误解为处理指令的错误消息。这意味着您的XML声明不是文件中的第一件事。请注意,它必须是您文件中的 very 第一件事 - 即使在它之前也不允许任何空格。如果它已经 是文件中的第一件事,那么要尝试的是将其保存为ASCII / ANSI而不是UTF-8,以消除可能的BOM。 (目前大多数XML解析器都是带有UTF-8的O.K.,它有一个BOM,但最初XML规范不允许这样做,所以似乎可以想象这个解析器可能不满意。)