Git://github.com/osmdroid/osmdroidからOpenStreetMapViewを構築しようとすると、このエラーが発生します。
failed to find target with hash string Android-23: D:\Users\myusername\AppData\Local\Android
どうすればこれを修正できますか?これに似た以前の質問は、Android 23がインストールされていないことを確認することを提案していますが、私の場合はそうです。
以下は関連情報です。
Android_HOMEはD:\Users\myusername\AppData\Local\Android\sdk
です
D:\Users\myusername\AppData\Local\Android\sdk\platforms\
には、ディレクトリ\ Android-23 \が含まれています(Android-19、Android-21、Android-22、Android-MNCも同様)。
build.gradle
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "org.osmdroid.example"
minSdkVersion 8
targetSdkVersion 23
versionCode 16
versionName "4.4-SNAPSHOT"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
}
lintOptions {
abortOnError false
}
}
dependencies {
compile 'Android.support:compatibility-v4:23+'
compile project(':osmdroid-Android')
//compile 'org.osmdroid:osmdroid-third-party:4.4-SNAPSHOT'
}
TargetSdkVersionとcompileSdkVersionを22に変更してみました。これにより、エラーメッセージが "Android-23"ではなく "Android-22"に変更されます。
私の場合、キャッシュのクリアはうまくいきませんでした。
SDKマネージャでは、「パッケージの説明を表示する」のボックスを必ずオンにしてください。それからあなたはまたあなたがインストールしても構わないと思っているバージョンのために "Google APIs"を選ぶべきです。
それをインストールすれば大丈夫なはずです
Android Studioでは、File -> Invalidate Caches/Restart
が問題を解決しました。
この質問に対する答え。
Gradleは時々愚かになり、キャッシュを一掃することが私が見つけた唯一の解決策です。あなたはあなたのユーザのホームフォルダの下に隠された.gradleフォルダと、チェックアウトの場所がosmdroidのための別の場所にあるでしょう。
注:これはAndroid Studioのバグかもしれないと思います。
Compiled Sdk VersionをGoogle API xxに戻します。
これでうまくいかない場合は、
これらの推奨された指示に従うことはうまくいくように思われました:
ヒント:/ path/to/Android/tools/Androidを実行してSDKマネージャを開きます。
1. Android-23用の「SDK Platform」2.「Android SDK Platform-tools」(最新)3.「Android SDK Build-tools」(最新)
別の番号で同じ問題を抱えていたなら、これは私のために働きました:
上部の「Gradleプロジェクトの同期に失敗しました」というテキストに「メッセージビューを開く」と表示されているエラーメッセージをクリックします。
左下隅の「Message Gradle Sync」ウィンドウで、提供されている解決策「Install missing ...」をクリックします。
必要に応じて1と2を繰り返す
23:08 Gradleの同期に失敗しました:C:\ Users\vik\AppData\Local\Android\Sdkにハッシュ文字列 'Android-26'のターゲットが見つかりませんでした
この問題には2つの解決策があります。
1)[ツール] - > [Android] - > [SDKマネージャ] - > [SDKツール](関連するAndroid SDKをダウンロードします。[パッケージの詳細を表示]をチェックします)。あなたのケースはアンドロイド6.0(マシュマロ/ APIレベル21)でしょう
2)または、build.gradle
ファイルを開き、以下の属性を更新します。
compileSdkVersion
buildToolsVersion
targetSdkVersion
あなたがインストールしたAndroid APIの最新バージョン/あなたが使用したいと思う別のインストールされたバージョン(私はいつも最新のバージョンを使用することをお勧めしますが、いつもの理由で:バグ修正など)
手順2を実行している場合は、アプリで使用している場合はAndroidサポートライブラリのバージョンを更新することを忘れないでください。これはビルドファイルのdependencies
セクションにあり、次のようになります。
compile 'com.Android.support:appcompat-v7:27.0.2'
(27.0.2
をアプリで使用する予定のAPIレベルの最新のサポートライブラリバージョンに置き換えます)
私にとってはcompileSdkVersion
を24に、targetSdkVersion
を24に、そしてcompile
をcom.Android.support:appcompat-v7:24.1.0
に変更することでうまくいきました。
Android SDK Managerを開き、最新のものにアップデートします。
私のフォルダを調べたところ、26ではなく27のフォルダが見つかりました。したがって、build.gradleファイルを修正し、26を27に置き換えました。compileSdkVersion、targetSdkVersion、およびimplementation(これらの数字をv:7に変更しました) :27.02)。それは私のエラーメッセージを変更しました。それから、buildSolsVersion "27.0.3"をcompileSdkVersionのすぐ下のAndroidブラケットセクションに追加しました。
プロジェクト作成ボタンは0メッセージで動作します。
次に、これを実行できるように、実際に自分の設定でモジュールを選択する方法を説明します。
ビルドコンソールで指定されたリンクから特定のAndroidリリースをダウンロードします。
私にとって問題は、私が23の代わりにcompileSdkVersion '23'を書いたことです。引用符が問題でした。
私は窓を使うときこの問題を抱えていた。私のプロファイルのSDKの場所が問題であることがわかりました。だから私は自分のSDKフォルダをドキュメントに移動しなければならなくて、それはうまくいった。
何も私にはうまくいきませんでした。私はSDKのパスを新しいSDKの場所に変更し、SDKを再インストールしました。
この問題は、実行しているコードが古いAPIレベルで作成されているために発生します。そして現在のSDKマネージャではそれらの実行をサポートしていません。それで、以下を試してください。 1. APIレベル23をサポートするSDKマネージャをインストールします。> SDKマネージャ> Android SDKの順に選択し、次にAPI 23を選択してインストールします。 2.次に、build.gradeアプリモジュールを更新して、compileSdkVersion、compile、およびその他の数値を現在サポートされているAPIレベルに変更します。
注:APIとリビジョン番号を確認して正確に変更してください。そうでなければあなたのプロジェクトは同期しません
私のこの問題はRun as administrator
the Andorid Studio
の後に解決されます
IDEがあなたがパッケージを持っていることを認識していることを確認してください。それは28をダウンロードした後でさえ私のものではなかった、それで私はそれがSDKのための選択としてFile-Project Structure-Modules-Appの下に現れていなかったことを理解した後それをアンインストールしてそれを再インストールした。
それに加えて、あなたはそれに合うようにあなたのビルドパスを変更したいかもしれません。
ちょっと関係して、私がCompileSDKのために28までずっと更新を強制したとき、最新の更新はコンパイルすることができるようであり、そしてグーグルプレイからの新しいAPI 26分の要件までではない。これは依存関係に関係していますが、あなたには影響しないかもしれません