2016-04-28 3 views
5

Android Studio 2.1, Java V8 Update 91, Gradle 2.1.0.Android Studio 2.1 Не удается разрешить символ «R»

Я знаю, что эти вопросы задавались здесь много раз, но ни одна из рекомендаций не работает.

Внезапно после компиляции, готовой к запуску на эмуляторе, моя IDE сообщит об ошибке в атрибуте R.id. Каждый Java-файл внезапно дает ту же ошибку, даже если я не вношу никаких изменений в файл.

Я попытался создать новый проект, чтобы увидеть, все ли происходит, но ошибка продолжается. На мой взгляд, это может быть внутренняя ошибка, снова. Даже сейчас я просто обновляю IDE.

Файл Java;

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_science); 

    list_View = (ListView) findViewById(R.id.maintable); 
    String[] Days = new String[] { "Sunday", "Monday", "Tuesday", "Wednesday","Thursday", "Friday", "Saturday"}; 
    dayList.addAll(Arrays.asList(Days)); 
    adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dayList); 
    list_View.setAdapter(adapter); 

    NfcAdapter nfc = NfcAdapter.getDefaultAdapter(this); 

    if (nfc.isEnabled()) { 
     adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dayList); 
     Toast.makeText(this, "NFC turned ON", Toast.LENGTH_SHORT).show(); 
    } 

    else { 
     Toast.makeText(this, "Please turn On NFC", Toast.LENGTH_SHORT).show(); 
    } 

} 

Ошибка R.

XML-файл, связанный с Java;

<ListView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/maintable" 
    > 
</ListView> 

Это, опять же, внутренняя ошибка?

+0

Пожалуйста, измените вопрос, чтобы показать весь файл класса, содержащий ваши 'проблемы r'. Обратите внимание, что трассировка стека Java не имеет ничего общего с вашим приложением, не говоря уже о вашей проблеме «R». – CommonsWare

+0

Done отредактировал java. –

+0

Это не весь файл класса, содержащий ваши проблемы с 'R'. – CommonsWare

ответ

0

Я пытаюсь изменить версию Gradle с 2.1.0 до 2.0.0, даже в AS версии 2.1, игнорируя производительность Instant Run и ее работу. Небольшая ошибка R теперь исчезла. Теперь я попытался вернуться к 2.1.0, ошибка R тоже ушла. !! Когда-то эта маленькая вещь сводила меня с ума, немного.

Позор на меня.

12

Попробуйте синхронизировать проект, перейдите в меню Инструменты> Android> Синхронизировать проект с Gradle Files

+1

Попробуйте также очистить проект: Build> Clean Project. Если ошибка сохраняется, возможно, у вас есть синтаксическая ошибка в одном из ваших XML-файлов. –

+0

Я сделал это, на самом деле проект синхронизируется, когда мы запускаем IDE. –

+0

@InfiniteLoops Сбой синхронизации? Получаете ли вы полезное сообщение об ошибке? –

1

Попробуйте выполнить чистую и восстановить, перейдя в Build > Clean Project и Build > Make Project

+0

все еще, не решил. Все еще говорит об ошибке, подобной той, которую я отвечаю выше. –

-1

Если вы используете сервисы Google Play и ваш compilesdk версия ниже 23, затем загрузите новый sdk и обновите свою компилируемую версию. После этого попробуйте очистить и перестроить. Он будет исправлен

+0

Извините, но я не использую GPService. –

0

Возможно, ошибка может возникнуть для инструментов, попробовав установить Android SDK Build Tools из Tools> Android> SDK Manager. или, возможно, эта ошибка может быть вызвана добавлением активности в пространство имен, которое отличается от корня, вы можете попробовать >> Импорт com.example.MyApplication.R; или ваш может также очистить о восстановлении проекта в сборке> Очистить проект или построить> Rebuild Project

-1

Вы пробовали Rebuild Project перейти к Строить> Rebuild Project и выполнить его, не делая Clean проект я имел та же проблема & это сработало для меня

+0

Нет. Я очистил, восстановил и синхронизировал ... Посмотрите на мой собственный ответ ниже. –

1

Иногда класс R.java не создается, когда в файл xml (например, activity_main.xml) есть некоторая ошибка. Например, если вы измените имя атрибута , у которого есть зарезервированное слово, которое нельзя изменить. Как это: если вы изменили атрибут: идентификатор на другое имя, как
id_A_Word_With_Error_Here в этом коде, который может быть частью activity_main.xml, может произойти ошибка ваша (R класс не создается).

<android.support.v7.widget.RecyclerView 
      android:id="@+id/messageRecyclerView" 

и есть ошибка, как:

<android.support.v7.widget.RecyclerView 
      android:id_A_Word_With_Error_Here="@+id/messageRecyclerView" 

Если чистый, восстановление не работает, и нет ошибок с импортом, как import com.something..., мое предложение искать ошибку в XML-файлы.

2

Я только что пережил этот кошмар. Закончилось удаление всего кода xml в блокнот, пока он не был исправлен. Затем повторно введены разделы кода до появления проблемы. Мышление назад, все началось, когда я вставил код с помощью WordPad. По-видимому, WordPad содержит другое кодирование или что-то подобное, чтобы избежать. В любом случае просто проверьте свое пробел в xml, удалив все это, чтобы избавиться от любых скрытых символов.

+0

Держу пари, проблема теперь решена. –

1

Я видел эту проблему много раз, правильное решение:

при вводе R, то Android-студия даст вам много различий имен R, выглядит как R(***.***.***) выбрать, но то, что вы действительно нужны конец пространства имен с ***.myProject (обратите внимание: myProject - ваше имя проекта), например: R(com.example.milka.demoProject).

Если вы выбираете другое пространство имен, вы получите сообщение об ошибке, поэтому не удалять нет необходимости import и повторно выбрать вас R