Я знаю, что здесь много вопросов об уровне и версии Android API, но это другой вопрос, поэтому, пожалуйста, не помечайте его как дубликат.
Мне интересно, как Java версии 1.6, 1.7, 1.8 ... относится к этим двум. Источник моего замешательства заключается в том, что я пытаюсь использовать метод Pattern.compile
с флагом Pattern.UNICODE_CHARACTER_CLASS
, как показано ниже.
Pattern pattern = Pattern.compile("\\b" + keywordToCheck + "\\b", Pattern.UNICODE_CHARACTER_CLASS);
Из документов на Pattern.UNICODE_CHARACTER_CLASS
он говорит, что он говорит Since: 1.7, что, как я предполагаю, означает, что он доступен в версии Java 1.7 и выше. Я пытаюсь использовать эту строку кода в проекте Android, но каждый раз, когда я запускаю ее на своем устройстве, я получаю:
java.lang.IllegalArgumentException: Unsupported flags: 256
Ниже приведены соответствующие части моего файла build.gradle.
defaultConfig {
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
Насколько я понимаю, это означает, что мое приложение будет использовать любой уровень API 19 и выше, что означает, что оно может работать на Android 4.4 (KitKat) или выше. Устройство, на котором я запускаю приложение, имеет Android 6.0. Как в это вписывается версия Java? Я использую Android Studio 3.0, в котором говорится, что я использую:
Android Studio 3.0
Build #AI-171.4408382, built on October 20, 2017
JRE: 1.8.0_152-release-915-b08 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Mac OS X 10.12.6
Может ли кто-нибудь объяснить мне, почему я получаю эту ошибку, а также взаимосвязь между уровнем API Android, версией и версией Java? Спасибо