Android APIのレベルとバージョンについて多くの質問がありますが、この質問は異なるので、重複としてマークしないでください。OSバージョン、APIレベル、Javaバージョンの関係
Javaバージョン1.6,1.7,1.8がこれらの2つにどのように関係しているのか疑問に思っています。私の混乱の原因は、Pattern.UNICODE_CHARACTER_CLASS
フラグを持つPattern.compile
メソッドを以下のように使用しようとしていることです。
Pattern pattern = Pattern.compile("\\b" + keywordToCheck + "\\b", Pattern.UNICODE_CHARACTER_CLASS);
は、それが言うことを言うPattern.UNICODE_CHARACTER_CLASS
にthe docsから導入されたバージョン:私は仮定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"
}
私の理解から、これは私のアプリが19インチ以上のAPIレベルを使用することを意味します。つまり、Android 4.4(KitKat)以上で動作することができます。アプリを実行している端末にはAndroid 6.0が搭載されています。 Javaのバージョンはこれにどのように適合していますか?
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
を、私はこのエラーを取得し、またAndroidのAPIレベル、バージョン、およびJavaのバージョンとの関係だ、なぜ誰かが私に説明することができます:私は、私が使用していると言うのAndroidメーカー3.0を使用していますか?ありがとう
ありがとうございました!その特定のフラグはAPIレベル24までサポートされていないようです。「Oracle Java」と「Android Java」の違いについて教えてください。 GoogleはこのパターンクラスをOracleとは別に実装していますか?あるいは、2つのJREが異なっていますか?両者の違いは何ですか? – strikerdude10
Javaは言語です。 Oracleはそれを作成した会社(Sun)を買収し、リファレンス実装を行っています。 AndroidはJavaの別の実装を使用しています。構文は同じですが、すべてのライブラリをサポートしているわけではありません。異なる企業が独自のバージョンのC++、つまりJavascriptを持っているように。 Googleの実装は100%独自のものです。実際には、Googleは異なるバイトコード言語 - dalvikを使用しています。 –
ああ、それを得ました。言語の構文は同じです(Javaにするもの)。それ以降のすべて:コンパイラ、JVM、ライブラリはGoogle/Oracle固有のものですか? – strikerdude10