ошибка андроидной студии при построении apk вы можете найти ошибки в этом сообщении error [duplicate]

Если вы похожи на меня, когда я впервые начал использовать Java, я хотел использовать оператор «==» для проверки того, были ли два экземпляра String одинаковыми, но к лучшему или худшему это не правильный способ сделать это в Java.

В этом уроке я продемонстрирую несколько разных способов правильно сравнить строки Java, начиная с подхода, который я использую большую часть времени. В конце этого руководства по сопоставлению Java String я также обсужу, почему оператор «==» не работает при сравнении строк Java.

Вариант 1: Сравнение строк Java с методом equals Большая часть (возможно, в 95% случаев). Я сравниваю строки с методом equals класса Java String следующим образом:

if (string1.equals(string2))

Этот метод String равен методу для двух строк Java, и если они содержат точно такую ​​же строку символов, они считаются равными.

Взглянув на быстрый пример сравнения строк с методом equals, если был выполнен следующий тест, две строки не будут считаться равными, поскольку символы не являются точно такими же (случай символов различен):

String string1 = "foo";
String string2 = "FOO";

if (string1.equals(string2))
{
    // this line will not print because the
    // java string equals method returns false:
    System.out.println("The two strings are the same.")
}

Но, когда две строки содержат одну и ту же строку символов, метод equals вернет true, как в этот пример:

String string1 = "foo";
String string2 = "foo";

// test for equality with the java string equals method
if (string1.equals(string2))
{
    // this line WILL print
    System.out.println("The two strings are the same.")
}

Вариант 2: Сравнение строк с методом equalsIgnoreCase

В некоторых строковых сравнительных тестах вы захотите игнорируйте, являются ли строки строчными или строчными. Если вы хотите проверить свои строки на равенство в этом случае нечувствительным образом, используйте метод equalsIgnoreCase класса String, например:

String string1 = "foo";
String string2 = "FOO";

 // java string compare while ignoring case
 if (string1.equalsIgnoreCase(string2))
 {
     // this line WILL print
     System.out.println("Ignoring case, the two strings are the same.")
 }

Вариант 3: сравнение строк Java с методом compareTo

Существует также третий, менее распространенный способ сравнения строк Java, и это с методом сравнения String класса. Если две строки точно совпадают, метод compareTo вернет значение 0 (ноль). Ниже приведен краткий пример того, как выглядит этот метод сравнения строк:

String string1 = "foo bar";
String string2 = "foo bar";

// java string compare example
if (string1.compareTo(string2) == 0)
{
    // this line WILL print
    System.out.println("The two strings are the same.")
}

Пока я пишу об этой концепции равенства в Java, важно отметить, что язык Java включает в себя метод equals в базовый класс Java Object. Всякий раз, когда вы создаете свои собственные объекты, и вы хотите предоставить средства для проверки того, являются ли два экземпляра вашего объекта «равными», вы должны переопределить (и реализовать) этот метод equals в своем классе (точно так же, как язык Java предоставляет это равенство / сравнение в методе String равно).

Вы можете посмотреть на это ==, .equals (), compareTo () и compare ()

36
задан Vadim Kotov 31 October 2017 в 13:45
поделиться

2 ответа

Мне кажется, что вам не хватает репозитория google(), чтобы получить зависимость.

Вот ссылка на файл pom, который вы ищете: https: //dl.google.com/dl/android/maven2/com/android/tools/testutils/26.1.0-alpha01/testutils-26.1.0-alpha01.pom

31
ответ дан Niklas 16 August 2018 в 04:37
поделиться
  • 1
    Благодарю. Решаемые. Также добавлен «путь к классам» com.android.tools.build: gradle: $ gradle_version & quot; в текущем .gradle, а не глобальном. – D.K. 6 November 2017 в 14:14
  • 2
    Стоит упомянуть, что это должно быть включено в файл build.gradle каждого проекта, а не только корень, как требуется в предыдущих версиях gradle – head in the codes 3 April 2018 в 23:56

Если вы используете lint в проекте, который вы создали с использованием старой версии Android Studio, вы можете столкнуться с этой ошибкой.

Чтобы решить эту проблему, для каждого проекта, который вы хотите запустить , включите репозиторий Google Maven в файле верхнего уровня build.gradle, как показано ниже:

allprojects {
    repositories {
        // The order in which you list these repositories matter.
        google()
        jcenter()
    }
}
99
ответ дан 0xalihn 16 August 2018 в 04:37
поделиться
  • 1
    Этот ответ на самом деле является самым кратким. – truedat101 28 May 2018 в 08:29
  • 2
    Это был заказ, упомянутый в этом комментарии, который действительно исправил его для меня. – dbar 28 May 2018 в 09:51
  • 3
    Репозиторий google () необходимо добавить, если он еще не добавлен. Это не было добавлено для меня. – Sunny 23 July 2018 в 07:29
  • 4
    Почему Android Studio не исправляет это самостоятельно? Каждый раз проблемы! – Boris Karloff 6 August 2018 в 15:25
Другие вопросы по тегам:

Похожие вопросы: