R не может быть преобразован в переменную - Hello World

1

Я знаю, что у многих людей была эта проблема, и я искал 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.

Может кто-нибудь мне помочь? Благодарю!

EDIT: Мой 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>
  • 0
    Может это поможет? stackoverflow.com/questions/885009/...
  • 0
    В соответствии с ошибкой ваш манифест каким-то образом поврежден / поврежден. Это предотвращает генерацию класса R и в конечном итоге приводит к ошибке, которую нельзя устранить. Пожалуйста, опубликуйте свой AndroidManifest.xml, чтобы мы могли проверить, что там не так.
Теги:
import

2 ответа

4
Лучший ответ

См. Эту строку в манифесте (при открытии <manifest/>)

package="HelloWorld Mylove"

Это не допустимое имя пакета и должно измениться. Обычно имя пакета состоит из строчных слов, разделенных точками, например:

com.hello.world

См. " Именование пакета". Измените это на допустимое имя.

Поскольку это в целом немного работы, потому что вы должны изменить его в разных местах¹ (а иногда и не получилось для меня по какой-то причине), я бы рекомендовал просто создать новый проект с помощью нового мастера проекта Android в eclipse. Это попросит вас указать имя пакета на шаге 4. Обязательно соблюдайте соглашения об именах, упомянутые выше. Вы должны в итоге получить тот же самый код. Кроме того, вы можете попробовать щелкнуть правой кнопкой мыши по проекту в проводнике проекта и выбрать " Android Tools → Rename Application Package.

¹ Само манифест, папки, в которых хранятся ваши файлы *.java, оператор package в исходных файлах

  • 0
    Спасибо, что решили это!
  • 0
    Да, я нашел много откликов на этом сайте по этому вопросу, но только это помогло мне, я не знаю, почему у других так много таких лайков. Спасибо!
3

Сообщение об ошибке, согласно которому The processing instruction target matching "[xX][mM][lL]" is not allowed. подразумевает, что ваше объявление XML (<?xml version="1.0" encoding="utf-8"?>) неправильно интерпретируется как инструкция обработки. Это означает, что ваше объявление XML не является первым делом в вашем файле. Обратите внимание, что это должно быть самое первое в вашем файле - даже никакие пробелы не могут предшествовать ему. Если это уже самое первое в файле, стоит попробовать сохранить его как ASCII/ANSI, а не UTF-8, чтобы устранить возможную спецификацию. (Большинство XML-парсеров в эти дни в порядке с UTF-8, у которого есть спецификация, но изначально спецификация XML не позволяла этого, поэтому кажется возможным, что этот анализатор может не понравиться этому.)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню