старая версия проекта Android Studio не компилируется - отсутствие объявления переменных - PullRequest
0 голосов
/ 31 октября 2019

ошибки компиляции gradle обновлен

Мой учитель в универе дал мне код приложения, и моя задача состоит в том, чтобы добавить некоторые функции. Учитель утверждает, что код работает, что ошибок не было (что мне не нужно исправлять код, нужно только обновить некоторые старые элементы, чтобы он работал).

Однако он не компилируется. Я обновил Gradle (это была первая ошибка). И теперь есть несколько ошибок: «ошибка: не удается найти переменную символа label_rightAnswers», «ошибка: не удается найти переменную символа failed_level» и т. Д. Я подумал, что вы могли также происходить с этим, и вы знаете, действительно ли этого не хватаетобъявления переменных или, например, слишком старая библиотека, версия платформы -tools idk. Я не могу найти ничего полезного в интернете :( Когда я комментирую эти строки, ошибок нет, эмулятор начинает работать, но приложение не отображается.

Пожалуйста, дайте мне знать, если у вас есть идея, что этовсе о. Спасибо большое!


часть кода провоцирует ошибки:

public class EndActivity extends Activity {

    //@SuppressLint("SetTextI18n")
    @SuppressLint("SetTextI18n")
    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_end);

        Bundle extras = getIntent().getExtras();
        boolean pass = extras.getBoolean("PASS");

        if (pass) {
            passLevel();
        } else {
            failLevel();
        }

//        txt.setTextSize(TypedValue.COMPLEX_UNIT_PX, 100);

        int wrongAnswers = extras.getInt("WRONG");
        int rightAnswers = extras.getInt("RIGHT");
        int timeout = extras.getInt("TIMEOUT");
        TextView right = (TextView) findViewById(R.id.rightAnswers);
        right.setTextSize(TypedValue.COMPLEX_UNIT_PX, 50);
        //int label_rightAnswers = 0;
        //int label_wrongAnswers = 0;
        //int label_timeout = 0;


        right.setText(getResources().getString(label_rightAnswers) + " " + rightAnswers);
        TextView wrong = (TextView) findViewById(R.id.wrongAnswers);
        wrong.setTextSize(TypedValue.COMPLEX_UNIT_PX, 50);
        wrong.setText(getResources().getString(label_wrongAnswers) + " " + wrongAnswers);

        TextView time = (TextView) findViewById(R.id.timeout);
        time.setTextSize(TypedValue.COMPLEX_UNIT_PX, 50);
        time.setText(getResources().getString(label_timeout) + " " + timeout);

    }

XML-файл:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="pg.autyzm.graprzyjazneemocje.EndActivity">

    <ImageView
        android:id="@+id/sun_image_end"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:adjustViewBounds="true"
        android:src="@drawable/sun" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:orientation="vertical">

            android:id="@+id/rightAnswers"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/score" />

        <TextView
            android:id="@+id/wrongAnswers"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/score" />

        <TextView
            android:id="@+id/timeout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/score" />

    </LinearLayout>

    <!--
    <ImageButton
       android:id="@+id/exitButton"
       android:layout_width="80dp"
       android:layout_height="80dp"
       android:layout_alignParentEnd="true"
       android:layout_alignParentRight="true"
       android:layout_alignParentTop="true"
       android:background="@null"
       android:scaleType="centerCrop"
       android:src="@drawable/icon_exit" />
       -->

   <TextView
       android:id="@+id/endTextMain"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:gravity="center_horizontal"
       android:textColor="@color/command"
       android:textSize="40dp"
       android:layout_alignParentLeft="true"
       android:layout_alignParentStart="true" />

   <ImageButton
       android:id="@+id/prevButton"
       android:layout_width="80dp"
       android:layout_height="80dp"
       android:background="@null"
       android:onClick="repeatLevel"
       android:scaleType="centerCrop"
       android:src="@drawable/icon_prev"
       android:layout_alignParentBottom="true"
       android:layout_alignParentLeft="true"
       android:layout_alignParentStart="true" />

</RelativeLayout>

Ответы [ 2 ]

0 голосов
/ 31 октября 2019

Теперь попробуйте этот код: -

Bundle extras = getIntent().getExtras();
    boolean pass = false;
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
        pass = Objects.requireNonNull(extras).getBoolean("PASS");
    }

    if (pass) {
        passLevel();
    } else {
        failLevel();
    }

//        txt.setTextSize(TypedValue.COMPLEX_UNIT_PX, 100);

    int wrongAnswers = extras.getInt("WRONG");
    int rightAnswers = extras.getInt("RIGHT");
    int timeout = extras.getInt("TIMEOUT");
    TextView right = (TextView) findViewById(R.id.rightAnswers);
    right.setTextSize(TypedValue.COMPLEX_UNIT_PX, 50);
    //int label_rightAnswers = 0;
    //int label_wrongAnswers = 0;
    //int label_timeout = 0;


    right.setText(getResources().getString(label_rightAnswers) + " " + rightAnswers);
    TextView wrong = (TextView) findViewById(R.id.wrongAnswers);
    wrong.setTextSize(TypedValue.COMPLEX_UNIT_PX, 50);
    wrong.setText(getResources().getString(label_wrongAnswers) + " " + wrongAnswers);

    TextView time = (TextView) findViewById(R.id.timeout);
    time.setTextSize(TypedValue.COMPLEX_UNIT_PX, 50);
    time.setText(getResources().getString(label_timeout) + " " + timeout);

Я добавил несколько условий.

0 голосов
/ 31 октября 2019

Я думаю, что эти уловки могут вам помочь.

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

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

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

надеюсь, что это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...