私は Eclipse から Android Studio に自分自身を移しました。今私は私の地図アプリで作業しようとしています。だから私は私のSHA-1指紋証明書番号が必要です。
私がEclipseを使用していたとき、それは Windows - > Preferences - > Android - > Build の真下にありました。しかし、Android Studioでは、指紋を簡単に見つけることができるように、このようなオプションを見つけることができませんでした。私はWindowsを使っています。私はこの link からそれを読みました:
IDEからプロジェクトを実行またはデバッグすると、Android Studioは自動的にアプリケーションをデバッグモードで署名します。
だから私は this link から私のJava binパスを設定した後にコマンドラインでこれを実行しようとしました、そして残念ながら私の指紋を見つけることができませんでした。 それは違法なオプションであると言っています 。
keytool -list -v -keystore "%USERPROFILE%\.Android\debug.keystore" -alias androiddebugkey -storepass Android -keypass Android
それはEclipseで非常に簡単だったようにAndroid StudioからSHA-1フィンガープリントを見つける方法はありますか?私はAndroid Studioの初心者なので、見つけるための完全なプロセスは何ですか?
もう1つ追加したいのは、EclipseにSHA-1フィンガープリントを生成させ、以前はGoogle開発者コンソールで自分のアプリをそのフィンガープリントに登録させ、そのAPIキーを使ってEclipseでそのアプリに取り組んだことです。 Android Studioのこの私のプロジェクトでも同じAPIキーを使用できますか?
これまでで最も簡単な方法:
これを行うには2つの方法があります。
1.高速化:
下のスクリーンショットを確認してください。
2. Googleマップアクティビティの操作:
google_maps_api.xml
で生成します下のスクリーンショットを確認してください
Executionに問題があります。
解決策:
下のスクリーンショットを確認してください
完了
私の問題は、私の Google Maps プロジェクトもEclipseからAndroid Studioに変更したのと同じです。私はこれに従うことによって私の問題を解決しました:
次のコマンドでJavaのbinディレクトリに移動します。
C:\Program Files\Java\jdk1.7.0_71\bin>
今すぐあなたのコマンドウィンドウ(CMD.EXE)に以下のコマンドを入力してください:
keytool -list -v -keystore c:\users\your_user_name\.Android\debug.keystore -alias androiddebugkey -storepass Android -keypass Android
例:
keytool -list -v -keystore c:\users\James\.Android\debug.keystore -alias androiddebugkey -storepass Android -keypass Android
ユーザー名がわからない場合は、cmdで記述することもできます。
keytool -list -v -keystore "%USERPROFILE%\.Android\debug.keystore" -alias androiddebugkey -storepass Android -keypass Android
そして、あなたはSHA1を手に入れるでしょう。
それから私は https://code.google.com/apis/console から新しいキーを作成しました。私のパッケージ名が変更されてから、このキーを自分のアプリケーションで使用したためです。それはうまくいきます。
jdkX.X.X_XX(私のフォルダ名はjdk1.7.0_71) _のBINフォルダにいることを確認してください。 Javaフォルダを開いてそれを見つけたら、フォルダ名がわかりますが、BINフォルダに入ってからこのコマンドを実行する必要があります。今日、私は上記の手順によってcmdコマンドウィンドウで私のSHA1値を得ました。
要約:
私はちょうどAndroid StudioでSHA-1を入手するケースを見つけました:
そして、あなたはあなたがgoogle_maps_key
を取得するために必要なすべてを見るでしょう。
Macの場合、これは完璧に機能しました。
keytool -list -v -keystore ~/.Android/debug.keystore -alias androiddebugkey -storepass Android -keypass Android
Android用の SHA-1 キーを生成するための最善の解決策は、 Android Studio からです。
一番右側のGradleをクリックしてください。
更新アイコンをクリックすると、アプリの名前が表示されます。
タスク - > レポート - > 署名レポート をクリックします。
コンソールの下部にあるSHA-1キーを見つけます。
[2017年更新]
ステップ1:Android Studioの右上にある[On Gradle]オプションをクリックします。
ステップ2:
- [更新]をクリックします(Gradleバーから[更新]をクリックすると、プロジェクトのGradleスクリプトの一覧が表示されます)。
- あなたのプロジェクトをクリックします(あなたのプロジェクト名フォームリスト(ルート))
- タスクをクリック
- Androidをクリック
- signingReportをダブルクリックします(Gradleコンソール/ Run BarにSHA1とMD5が表示されます)。
ステップ3:Android Studioの下部にあるGradleコンソールオプションをクリックしてSHA1キーを確認します。
ステップ4: これでSHAキーは手に入りましたが、プロジェクトを実行できません。そのため、設定をアプリモードに変更します。下の画像を見てください。
このような。
ステップ5:ハッピーコーディング!
LinuxおよびMacの場合
keytool -list -v -keystore ~/.Android/debug.keystore -alias androiddebugkey -storepass Android -keypass Android
私は自分のMacから端末を使って次のコマンドを直接使った。私はSHA1 Fingerを手に入れました。これはコマンドです:
keytool -list -v -keystore ~/.Android/debug.keystore -alias androiddebugkey -storepass Android -keypass Android
プロダクションキーストアのSHA1を取得する場合
ビルド - >署名付きAPKの生成...
パスワードでキーストアを作成し、手順に従ってください
Mac /ライブラリ/ Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/binに移動し、cdコマンドの後にbinフォルダを端末にドラッグしてポイントし、keytoolツールを使用できるようにします。そのため、端末にcd
と入力し(ここでbinをドラッグ)、Enterキーを押します。
それをコピーして端末に貼り付けます。
keytool -exportcert -alias Your_keystore_AliasName -keystore /Users/Home/Development/AndroidStudioProjects/YoutubeApp/app/YoutubeApp_keystore.jks -list -v
パスを消去してキーストアを保存した場所に移動し、キーストーンをドラッグしてコマンドラインの-keystore
の後にドロップすると、パスが作成されます。
また、Your_keystore_AliaseNameを消去して、作成時に使用したエイリアスのキーストーン名を入力します。
押す Enter パスワードを入力してください:)
パスワードを入力しても、端末はキーボード入力を受信したことを表示しませんが、実際には受信します。パスワードを入力してを押します。 Enter パスワードが入力されていない場合でも.
Android Studioを使用している場合は、SHA-1およびMD5証明書フィンガープリント(debug、release ... すべてのビルドタイプ !!)をGradle Tasks)から高速で取得できます。:
signingReport
SHA-1およびMD5証明書はMessages Logsに表示されています。
Androidプラグイン(Gradleアプリで設定)はデフォルトでデバッグモードを作成します。
com.Android.application
キーストアへのファイルルート:
HOME/.Android/debug.keystore
attachdebug.keystore
をbuild.gradle
にすることをお勧めします。これを行うには、ファイルdebug.keystore
をアプリフォルダーに置き、次に Gradle appにSigningConfigsを追加します。
apply plugin: 'com.Android.application'
Android {
................
signingConfigs {
debug {
storeFile file("../app/debug.keystore")
storePassword "Android"
keyAlias "androiddebugkey"
keyPassword "Android"
}
release {
storeFile file("../app/debug.keystore")
storePassword "Android"
keyAlias "androiddebugkey"
keyPassword "Android"
}
}
........
}
Extra:リリース用に作成したい場合は、ファイルrelease.keystore
をアプリフォルダーに置きます。 (この例では同じdebug.keystore
を使用しています。)
Android Studio があるのなら、それはとても簡単です。 Android Studioを使用してMapActivityを作成し、作成したらgoogle_maps_api.xmlに移動します。そこにコメントで与えられたリンクがあるでしょう。ブラウザに貼り付けると、いくつかの詳細を入力するよう求められ、その後APIが生成されます。 keytoolなどを使う必要はありません。
スクリーンショット:
これは私の場合はうまくいきました:このパスに自動的に保存されたパス.keystoreファイルを与える代わりに %USERPROFILE% を使ってください C:Users /ユーザー名/ .Android :
keytool -list -v -keystore "%USERPROFILE%\.Android\debug.keystore" -alias androiddebugkey -storepass Android -keypass Android
簡単なコマンドを使う:
keytool -exportcert -keystoreデバッグまたはプロダクションキーストアへのパス-list -v
あなたはSHA1キーを取得します。
Windows 10 、 Android Studio 端末から:
keytool -exportcert -alias androiddebugkey -keystore %USER_PROFILE%"/.Android/debug.keystore -list -v
注:debug.keystore
の場合、パスワードは「Android」です。デバッグキーストアは通常"%USER_PROFILE%"/.Android/debug.keystore
にあります。
Android Studioを使用して、MD5、SHA-1フィンガープリントを見つけるための非常に簡単なプロセスを見つけました。
- プロジェクトを実行する
- Gradleメニューに移動します(メニュー:[表示] - > [ツール]ウィンドウ - > [Gradle])。
- Gradleウィンドウの 'signingReport'に行きます。 (あなたのプロジェクト - >タスク - > Android - > signingReport)
- それを実行します。 (ダブルクリックまたはCtrl + Shift + F10を押す)
- 実行ウィンドウでは、すべての情報が見つかります。
デバッグモードでのみ動作します。解放モードでは私はsha-1を見ることができません。これがgradlew signingReport
の結果です
Variant: release
Config: none
----------
Variant: releaseUnitTest
Config: none
----------
Variant: debug
Config: debug
Store: path\Android\avd\.Android\debug.keystore
Alias: AndroidDebugKey
MD5: xx:xx:xx:62:86:B7:9C:BC:FB:AD:C8:C6:64:69:xx:xx
SHA1: xx:xx:xx:xx:0F:B0:82:86:1D:14:0D:AF:67:99:58:1A:01:xx:xx:xx
Valid until: Friday, July 19, 2047
----------
そのため、sha-1を取得するにはkeytoolを使用する必要があります。これが公式のFirebaseドキュメントです。
Softcoder で与えられた答えに1つ追加したい。私は何人かの人々が彼らの debug.keystore パスをcommand line
に正しく与えることができないのを見ました。彼らは彼らが上で受け入れられた正確なプロセスをしているのを見ます、しかしそれはうまくいきません。その時点でdebug.keystoreをドラッグしてコマンドラインにドロップしてみてください。受け入れられた答えがあなたのために働いていない場合、それは役立ちます。躊躇せずに全プロセスを実行します。いい答えでした。
私はこのようにしました:
ステップ1: /このフォルダに行く
On Mac: /Users/<username>/.Android/
On Windows: C:\Documents and Settings\<username>\.Android\
On Linux: ~/.Android/
ステップ2: /このコマンドラインを実行:
keytool -list -v -keystore debug.keystore -storepass Android
SHA-1キーが見えます。
右側のパネルにあるGradleアイコンをクリックしてから、(ルート)をクリックします。
タスク> Android> signingReport
その後、Gradleスクリプトが実行され、鍵が見えます。
Android Studio V 1.5.1で新しい「Google Maps Project」を作成すると、最後の画面にgoogle_maps_api.xml
ファイルが開き、画面に次の指示が表示されます。
リソース:
TODO:アプリケーションを実行する前に、Google Maps APIキーが必要です。
入手するには、このリンクをたどり、指示に従って、最後に「作成」を押してください。
https://console.developers.google.com/flows/enableapi?apiid=maps_Android_backend&keyType=CLIENT_SIDE_Android&r= あなたのSHA-1 +あなたのパッケージ名
次の行を使用して、資格情報を既存のキーに追加することもできます。
あなたのSHA-1:あなたのパッケージ名あるいは、こちらの指示に従ってください。
https://developers.google.com/maps/documentation/Android/start#get-keyキーを取得したら(「AIza」で始まります)、このファイルの「google_maps_key」という文字列を置き換えます。
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR GOOGLE MAPS KEY</string>
あなたの GOOGLE MAPSKEY を取得するには、ブラウザに表示されたURLリンクをカットアンドペーストして、新しいアプリケーションを作成するときに上記の手順に従ってください。 SHA-1
とPackage names
はすでにリンクに含まれているので、それらを知る必要はありません。ただし、それらはプロジェクト内のresources>Values>google_maps_api.xml
ファイルにあります。このファイルは、プロジェクトの作成に関する指示に従うと完了します。
Keytoolを使用してAPI Managerからの指示を使用します。
あなたのAndroidManifest.xmlファイルからパッケージ名を入手してください。次に、次のコマンドを使って指紋を取得します。
keytool -list -v -keystore mystore.keystore
[ファイル]> [プロジェクト構造]に移動します。app
から名前を指定したものをmobile
またはModules
から選択します。
Signing
タブを選択します。
証明書を追加することができます + ボタン。
次のコマンドを使用して、システム名でAJAY SUNDRIYALを変更することができます。これはあなたのdebug.keystore専用です。これはあなたのために働きます。
C:\Program Files\Java\jdk1.8.0_91\bin>keytool -list -v -keystore "c:\users\AJAY SUNDRIYAL\.Android\debug.keystore" -alias androiddebugkey -storepass Android -keypass Android
Google Maps にSHA1が必要な場合は、 LogCat にエラーログが表示されます。
これは私のために働いた:
keytool -exportcert -alias androiddebugkey -keystore
デバッグまたはプロダクションキーストアへのパスをC:\ users\youruser.Android\debug.keystore -list -vのようにここに置きます
コマンドウィンドウまたはターミナルウィンドウのJava\jdk*\bin
ディレクトリにすでにいることを確認してください。
その後、パスワードとしてAndroidを使用してください。
Webリソースが誤解を招く可能性があります。これらは働いているものです:
キーストアのパスは二重引用符で囲まれています。それはうまくいっています。
keytool -list -v -keystore "C:\Users\App innovation\.Android\debug.keystore" -alias androiddebugkey -storepass Android -keypass Android
最初のステップCドライブを開き、プログラムファイルを開く-> Javaフォルダーを開く-> Binを開き、jarsigner.exeでDoubleClick
次に、Cmdを開きます
C:\ Program Files\Java\jdk1.8.0_191\binに移動し、Enterを押してからC:\ Program Files\Java\jdk1.8.0_191\bin> keytool -list -keystore "F:\ BTG UPDATE BUILD\Beyond_The_Game。 jks」
簡単、スプラッシュスクリーンでこのメソッドを呼び出す:hash()とgetCertificateSHA1Fingerprint()、そしてキーがログに表示されます
private void hash() {
PackageInfo info;
try {
info = getPackageManager().getPackageInfo(
this.getPackageName(), PackageManager.GET_SIGNATURES);
for (Android.content.pm.Signature signature : info.signatures) {
MessageDigest md;
md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.e("sagar sha key", md.toString());
String something = new String(Base64.encode(md.digest(), 0));
Log.e("sagar Hash key", something);
System.out.println("Hash key" + something);
}
} catch (PackageManager.NameNotFoundException e1) {
Log.e("name not found", e1.toString());
} catch (NoSuchAlgorithmException e) {
Log.e("no such an algorithm", e.toString());
} catch (Exception e) {
Log.e("exception", e.toString());
}
}
private void getCertificateSHA1Fingerprint() {
PackageManager pm = this.getPackageManager();
String packageName = this.getPackageName();
int flags = PackageManager.GET_SIGNATURES;
PackageInfo packageInfo = null;
try {
packageInfo = pm.getPackageInfo(packageName, flags);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
Signature[] signatures = packageInfo.signatures;
byte[] cert = signatures[0].toByteArray();
InputStream input = new ByteArrayInputStream(cert);
CertificateFactory cf = null;
try {
cf = CertificateFactory.getInstance("X509");
} catch (CertificateException e) {
e.printStackTrace();
}
X509Certificate c = null;
try {
c = (X509Certificate) cf.generateCertificate(input);
} catch (CertificateException e) {
e.printStackTrace();
}
String hexString = "";
try {
MessageDigest md = MessageDigest.getInstance("SHA1");
byte[] publicKey = md.digest(c.getEncoded());
Log.e("sagar SHA",byte2HexFormatted(publicKey));
} catch (NoSuchAlgorithmException e1) {
e1.printStackTrace();
} catch (CertificateEncodingException e) {
e.printStackTrace();
}
}
public static String byte2HexFormatted(byte[] arr) {
StringBuilder str = new StringBuilder(arr.length * 2);
for (int i = 0; i < arr.length; i++) {
String h = Integer.toHexString(arr[i]);
int l = h.length();
if (l == 1) h = "0" + h;
if (l > 2) h = h.substring(l - 2, l);
str.append(h.toUpperCase());
if (i < (arr.length - 1)) str.append(':');
}
return str.toString();
}
ありがとうございました。