Подтвердить что ты не робот

Android Studio: Gradle: ошибка: не удается найти символьную переменную

Я работал над своим приложением, и все было нормально, пока я не попытался отобразить изображение в java.

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

Ошибки вроде:

Gradle: error: cannot find symbol variable activity_main
Gradle: error: cannot find symbol variable button1
Gradle: error: cannot find symbol variable button2
Gradle: error: cannot find symbol variable textView
Gradle: error: cannot find symbol variable secondActivity

В MainActivity я импортировал эти библиотеки:

import android.R;
import android.content.Intent;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Button;

и во второй Активности:

import android.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

Кто-нибудь знает, как это исправить?

EDIT: я удалил import android.R;, и теперь он работает нормально.

4b9b3361

Ответ 1

Вам не следует импортировать android.R. Это должно автоматически генерироваться и распознаваться. Этот вопрос содержит много полезных советов, если после удаления импорта вы получите сообщение об ошибке R.

Некоторые основные шаги после удаления импорта, если появляются эти ошибки:

  • Очистите свою сборку, а затем перестройте
  • Убедитесь, что в ваших XML файлах нет ошибок или опечаток.
  • Убедитесь, что ваши имена ресурсов состоят из [a-z0-9.]. Капители или символы по какой-либо причине не допускаются.
  • Выполните синхронизацию Gradle (через Tools > Android > Sync Project с Gradle Files)

Ответ 2

Если вы используете несколько ароматов?

- убедитесь, что файл ресурсов не объявлен/добавлен как в одном из вариантов, а в основном.

Пример: a_layout_file.xml файл, содержащий символьную переменную

ЦСИ:

flavor1/res/layout/(без файла)

flavor2/RES/макет/a_layout_file.xml

Основной/RES/макет/a_layout_file.xml

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

Ответ 3

Если вы используете поле конфигурации String build в своем проекте, это может быть так:

buildConfigField "String", "source", "play"

Если вы объявите свою строку, как указано выше, это приведет к ошибке. Исправление состоит в том, чтобы изменить его на:

buildConfigField "String", "source", "\"play\""

Ответ 4

Убедитесь, что в AndroidManifest.xml файл MainActivity и .ScanActivity:

<activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".ScanActivity">

    </activity>

Ответ 5

Убедитесь, что ваши переменные находятся в области метода, который ссылается на него. Например, я определил текстовое представление локально в методе в классе и ссылался на него другим методом.

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