Я знаю, что у многих людей была эта проблема, и я искал 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>
См. Эту строку в манифесте (при открытии <manifest/>
)
package="HelloWorld Mylove"
Это не допустимое имя пакета и должно измениться. Обычно имя пакета состоит из строчных слов, разделенных точками, например:
com.hello.world
См. " Именование пакета". Измените это на допустимое имя.
Поскольку это в целом немного работы, потому что вы должны изменить его в разных местах¹ (а иногда и не получилось для меня по какой-то причине), я бы рекомендовал просто создать новый проект с помощью нового мастера проекта Android в eclipse. Это попросит вас указать имя пакета на шаге 4. Обязательно соблюдайте соглашения об именах, упомянутые выше. Вы должны в итоге получить тот же самый код. Кроме того, вы можете попробовать щелкнуть правой кнопкой мыши по проекту в проводнике проекта и выбрать " Android Tools → Rename Application Package
.
¹ Само манифест, папки, в которых хранятся ваши файлы *.java, оператор package
в исходных файлах
Сообщение об ошибке, согласно которому 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 не позволяла этого, поэтому кажется возможным, что этот анализатор может не понравиться этому.)