R.layout.main не может быть разрешен
Использование Eclipse при победе XP. Я уже создал приложение или 2, но теперь я работаю над "реальной" версией и получаю вышеуказанную ошибку.
У меня были смешные создания версии 1.5, поэтому начался новый проект для 2.1.
package xxx.guest;
import android.R;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
public class briefme extends Activity {
private String strURL;
........
........
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main );
Проект, как показано ниже (примечание, я удалил некоторые имена по причинам конфиденциальности!)
Любые идеи, что пошло не так?
Спасибо,
Martin.
Снимок экрана проекта здесь
Ответы
Ответ 1
Я бы попробовал обновить, если это не работает, закройте и откройте проект.
Если эти два не работают, удалите и заново создайте R (он должен автоматически сгенерироваться) (скопируйте его, чтобы быть в безопасности).
У меня это случалось со мной несколько раз, и это три вещи, которые я обычно делаю, чтобы исправить ошибку.
Изменить: также попробуйте изменить импорт:
import android.R;
в
import your.package.R;
Ответ 2
В моем случае это произошло потому, что это был ресурс макета с буквами верхнего регистра в имени файла. Ресурсы не были скомпилированы из-за ошибки и из-за этого отсутствовал класс R.
Ответ 3
Как было сказано выше, просто изменив импорт "import android.R;" к одному относительно вашего приложения, например. "import your.package.name.R;" должен сделать трюк здесь.
Ответ 4
Вы также можете проверить, есть ли у программы adb в папке/платформах инструменты для запуска в вашей системе. Если нет, то R.java для вашего проекта не будет сгенерирован.
Ответ 5
Мои два цента.
В моем случае я использовал другую переменную с тем же именем R, которая привела к ошибке компиляции. Eclipse может стать лучше с точки зрения указания пользователям точного сообщения об ошибке.
Ответ 6
Возможный дубликат R не может быть разрешен - ошибка Android.
В этой теме у нас отличный ответ.
Ссылаясь на http://source.android.com/source/using-eclipse.html, мы получаем следующий фрагмент:
Примечание. Eclipse иногда любит добавлять инструкцию import android.R в верхней части ваших файлов, которые используют ресурсы, особенно если вы попросите Eclipse сортировать или иным образом управлять импортом. Это заставит ваш make сломаться. Следите за этими ошибочными операциями импорта и удаляйте их.
Итак, ответ заключается в том, чтобы удалить, а не переименовать ваш import android.R;
Причиной этого является то, что your.package.R
видно, поскольку вы используете общий пакет.
import android.R;
маскирует это, поэтому очищать его проще, чем заменять его на что-то избыточное.
Ответ 7
Если у вас 64-разрядная платформа Linux без библиотек ia32, эта проблема также может возникнуть. Мне потребовалось некоторое время, чтобы связать это, увидев, что проблема явно не связана с невозможностью выполнить 32-разрядный код.
Ответ 8
В моем случае (см. другие уроки) вы должны изменить:
setContentView(R.layout.main );
To:
setContentView(R.layout.activity_main);