我试图在Android工作室,在Windows上做一个地图应用程序。如何查询SHA-1指纹证书编号?

当我使用Eclipse时,它就在Windows ->首选项-> Android ->构建下。但在Android Studio中,我找不到类似的选项。

我在文档里看到

Android Studio自动在调试模式下签署应用程序 从IDE运行或调试项目。

所以我试着设置我的Java bin路径,并运行以下命令,从这里取:

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

然而,我得到了一个错误消息,说它是一个非法选项。

一步一步地,我如何在Android Studio中获得这些信息?

作为解决方案:我之前使用Eclipse生成的SHA-1指纹注册了我的应用程序。我可以使用相同的API键工作在我的项目在Android工作室?


进入文件>项目结构 从模块中选择app或mobile 选择签名选项卡。 您可以单击+按钮添加证书。


我的问题是一样的,因为我也把我的谷歌地图项目从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的BIN文件夹中。X_XX(我的文件夹名称是jdk1.7.0_71),或者如果您不知道您的文件夹名称,那么可以通过打开Java文件夹找到它,您将看到文件夹名称,但您必须在BIN文件夹中,然后运行此命令。今天,我通过上述程序在cmd命令窗口中获得了我的SHA1值。

快照:


我想在Softcoder给出的答案中添加一件事。我见过一些人不能给他们的调试。在命令行上正确地打开密钥存储库路径。他们看到他们正在做上面所接受的确切过程,但它不起作用。此时尝试拖动调试。并将其放到命令行上。如果公认的答案不适合你,它会有所帮助。毫不犹豫地完成整个过程。这是一个很好的答案。


对于Mac来说,这非常有效:

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

我刚刚找到了在Android Studio中获得SHA-1的案例:

单击您的包,并选择新建->谷歌->谷歌地图活动 Android Studio重定向到google_maps_api.xml

您将看到获取google_maps_key所需的所有内容。


这招对我很管用:

keytool -exportcert -alias androiddebugkey -keystore

将调试或生产密钥库的路径放在这里,如C:\users\youruser.android\debug。Keystore -list -v .使用实例

确保您已经在命令或终端窗口中的Java\jdk*\bin目录中。

然后使用Android作为密码。

有时网络资源可能具有误导性。这些是有效的:

SHA1指纹教程 快速入门示例应用程序


如果你有Android Studio,那就非常简单了。只需使用Android Studio创建一个MapActivity,创建后进入google_maps_api.xml。在评论中会给出一个链接。如果你把它粘贴到浏览器中,它会要求你填写一些细节,然后你的API就会生成。没有必要使用keytool和所有。

屏幕截图:


我直接在我的Mac上使用终端使用下面的命令。我得到了SHA1手指。命令如下:

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

如果您正在使用Android Studio,您可以获得SHA-1和MD5证书指纹(debug, release…所有构建类型!!)快速通过Gradle任务:

签名报告

SHA-1和MD5证书在“消息日志”中显示。

Android插件(在Gradle应用中配置)为默认创建一个调试模式。

com.android.application

到密钥库的文件路由:

HOME/.android/debug.keystore

我建议附加调试。要构建的Keystore。gradle。为此放一个文件,调试。然后在Gradle app中添加signingconfigurations:

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"
            }
        }
        ........
    }

额外:如果你想要创建发布,放一个文件,发布。Keystore,在应用程序文件夹中。(本例使用相同的debug.keystore。)


密钥存储库的路径用双引号括起来。它工作得很好。

keytool -list -v -keystore "C:\Users\App innovation\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

Linux和Mac

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android 

获取生产密钥库的SHA1:

Build --> Generate Signed APK... Create keystore with password and follow the steps Go to your Mac/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin and drag the bin folder to the terminal after cd command to point at it so you can use the keytool tool. So, in terminal write cd (drag bin here) then press enter. Then, copy and paste this in the terminal: keytool -exportcert -alias Your_keystore_AliasName -keystore /Users/Home/Development/AndroidStudioProjects/YoutubeApp/app/YoutubeApp_keystore.jks -list -v Erase my path and go where you stored your keystore and drag your keystone and drop it after -keystore in the command line so the path will get created. Also, erase Your_keystore_AliaseName to put your alias keystone name that you used when you created it. Press Enter and enter the password :) When you enter the password, the terminal won't show that it receives keyboard entries, but it actually does, so put the password and press Enter even if you don't see the password is typed out.


对于Windows 10,来自Android Studio终端:

keytool -exportcert -alias androiddebugkey -keystore %USER_PROFILE%"/.android/debug.keystore -list -v

注:用于调试。密钥库,密码为“android”。调试密钥存储库通常位于“%USER_PROFILE%”/.android/debug.keystore。


如果你需要SHA1谷歌地图,你可以在LogCat中看到你的错误日志。


我发现了一个非常简单的过程来找到你的MD5, SHA-1指纹使用 Android工作室。 运行你的项目 转到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
----------

所以我必须使用keytool来获取sha-1。下面是Firebase官方文档:

Get_sha-1_for_release


最简单的方法:

最后一步为Android Studio V 2.2添加了更新

有两种方法。

1. 更快的方式:

Open Android Studio 打开你的项目 点击Gradle(从右侧面板,你会看到Gradle条) 点击刷新(从Gradle栏点击刷新,你会看到项目的Gradle脚本列表) 点击你的项目(你的项目名称表单列表(根)) 点击任务 点击Android 双击signingReport(你会在运行栏中得到SHA1和MD5(有时会在Gradle控制台中)) 从模块选择下拉菜单中选择应用程序模块以运行或调试应用程序

请看下面的截图:

2. 工作与谷歌地图活动:

Open Android Studio 打开你的项目 单击文件菜单->选择新建->单击谷歌->选择谷歌地图活动 将出现一个对话框->单击Finish Android Studio会自动生成一个名为google_maps_api.xml的XML文件 您将在这里获得调试SHA1密钥(在XML文件的第10行)

请看下面的截图:

Android Studio V 2.2更新

在执行方面有一个问题。

解决方案:

从运行栏点击切换任务执行/文本模式

请看下面的截图:

完成了。


点击右边面板上的Gradle图标,然后点击(根)。

任务> android > signingReport

然后Gradle脚本将执行,您将看到您的键。


当创建一个新的“谷歌地图项目”时,在Android Studio V 1.5.1中,最后一个屏幕会打开google_maps_api.xml文件,并显示如下说明的屏幕:

资源:

TODO: Before you run your application, you need a Google Maps API key. To get one, follow this link, follow the directions and press "Create" at the end: https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r= YOUR SHA-1 + YOUR PACKAGE NAME You can also add your credentials to an existing key, using this line: YOUR SHA-1:YOUR PACKAGE NAME Alternatively, follow the directions here: https://developers.google.com/maps/documentation/android/start#get-key Once you have your key (it starts with "AIza"), replace the "google_maps_key" string in this file. <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR GOOGLE MAPS KEY</string>

要获得您的谷歌MAPS KEY,只需剪切并粘贴URL链接到您的浏览器中,并在创建新应用程序时遵循上面的说明。SHA-1和Package名称已经在给出的链接中,所以您不需要知道它们。然而,它们将在您的项目中的资源>Values>google_maps_api.xml文件中,当您按照创建项目的说明完成时。


这在我的情况下是有效的:使用%USERPROFILE%,而不是给出路径。keystore文件自动存储在这个路径C:Users/用户名/.android:

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

这在Gnu/Linux - Mac - Windows中非常非常简单

首先:—复制此命令

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android 

第二步:现在在Android Studio的终端中复制并粘贴命令

结果!

祝你好运! !


为Android生成SHA-1密钥的最佳解决方案是使用Android Studio。

点击最右边的Gradle:

点击刷新图标,你会看到应用程序的名称:

点击Tasks -> Report -> Signing Report:

在控制台底部找到SHA-1密钥:


使用keytool使用API管理器的说明:

从AndroidManifest.xml文件中获取包名。然后使用 获取指纹的命令如下: Keytool -list -v -keystore mystore.keystore


我是这样做的:

步骤1:进入这个文件夹

On Mac: /Users/<username>/.android/

On Windows: C:\Documents and Settings\<username>\.android\

On Linux: ~/.android/

第二步:运行命令行:

keytool -list -v -keystore debug.keystore -storepass android

您将看到SHA-1密钥。


获取指纹最简单的方法是从应用程序切换到签名报告,点击下拉菜单,然后单击构建。

然后,您将能够在底部窗格中看到sha1指纹,在那里您可以看到调试报告和堆栈跟踪。注意:当你想在设备或模拟器上运行你的应用程序时,记得切换回应用程序。


您可以使用以下命令并使用您的系统名称更改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

我用的是@Hiren Patel的答案,但在android studio 2.2及以后的版本会有轻微的改变


使用简单的命令:

Keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v .使用实例

你会得到SHA1密钥。


(2017年更新)

第一步:在Android Studio的右上方单击Gradle选项。

步骤2:

——点击刷新(从Gradle栏点击刷新,你会看到项目的Gradle脚本列表)

——点击你的项目(你的项目名称表单列表(根))

——点击任务

——点击Android

双击signingReport(你会在Gradle控制台/运行栏中得到SHA1和MD5)

第三步:点击Android Studio底部的Gradle控制台选项,查看你的SHA1密钥。

步骤4:现在您获得了SHA密钥,但不能运行项目。这就是为什么将配置更改为应用程序模式。见下图。

像这样。

第五步:快乐编码!!


点击右边窗格中的Gradle图标。 单击根项目名称。 点击任务 点击安卓 单击signingReport 在您看到运行报告的底部窗格中 点击“切换任务执行/文本模式” 你可以看到sha-1


我是这样做的,它起作用了

keytool.exe -list -v -alias ALIAS_NAME -keystore "E:\MID_PATH\trackMeeKeyStore.jks" -storepass PASS -keypass PASS

简单,在你的启动屏幕中调用这个方法: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();
        }

谢谢你!


打开你的C驱动器程序文件->打开JAVA文件夹->打开Bin并双击jarsigner.exe

然后打开Cmd

去C:\Program Files\Java\ jdk1.8.0_191\bin然后输入然后去C:\Program Files\Java\ jdk1.8.0_191\bin>keytool -list -keystore "F:\BTG UPDATE BUILD\Beyond_The_Game.jks"

Enter JUST Show Enter Kaystoer Password ***** Enter your Password Enter finally your Release SHA key Getting you Thank you


keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android 

对我来说,最短的方法是在终端命令行输入。/gradlew signingReport。

注:如果你在Windows中使用。\gradlew signingReport代替。


执行以下步骤

gradle(在右上角)>点击你的项目名称>任务> android >双击signingReport

然后你会在4中得到SHA1和其他信息:Run(它会自动出现)。


许多用户给出了他们的答案,在Android Studio 4.2以下的版本中运行良好。但对于Android Studio 4.2和更新版本,遵循以下步骤生成SHA密钥。步骤在这些图片中给出。

步骤:

1)点击gradle。Android Studio的右上角。正如你在这张照片上看到的。

2)现在点击图标如下图所示。一个新的可搜索窗口/屏幕将打开。

3)现在输入gradle signingreport,按Enter键开始生成SHA KEY,如下图所示。

4)您的SHA密钥将生成如图所示。使用这些步骤,你可以在Android Studio 4.2中生成SHA KEY。

注意:-如果您无法获得SHA密钥,则按照本回答中给出的说明进行操作。(颤振/反应本机…)

链接:-SHA颤振/反应本机键


如果你只想要SHA证书的值,在android文件夹中执行以下命令:

 gradlew signingReport

...这样你就能快速方便地查看你的指纹


Android Studio 4.2或新版本

转到右边的Gradle

打开它,然后点击执行Gradle任务,这个锅就打开了

然后您必须输入signingreport并按enter,这将执行命令并提供结果。

适用于旧版本的Android Studio

您可以在旧版本上执行上述所有步骤以获得结果。


在Android studio 4+(不确定版本)中,如果你点击右边栏的Gradle,它不会显示任何生成签名报告的选项。它会告诉你:

点击任务列表未构建…不构建gradle任务列表。并保存设置。

然后点击gradle同步按钮:

然后你会看到signingreport选项:


最近,Android Studio在其最新更新2020.3.1中已经从Gradle侧栏中删除了signingReport,但你仍然可以在Android Studio的终端中获得这些详细信息,只需编写以下命令: 窗口:

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

Linux与MacOS:

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android 

点击左下角的终端图标

CD到android文件夹并运行

gradlew signingreport

一旦完成,它将打印SHA-1、MD5和SHA-256密钥


你可以在android studio中打开终端,然后写这行代码:

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

以上答案给我一个命令没有发现错误 对我来说正确的终端命令是

./gradlew signingReport

去这个网站自己找吧 https://developers.google.com/android/guides/client-auth

method1: ./gradlew signingReport

method2:

    (a) for mac/linux

 keytool -list -v \
-alias androiddebugkey -keystore ~/.android/debug.keystore




     (b) for windows ==>
keytool -list -v \
-alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

密码:android


按照以下简单步骤获取SHA-1, SHA-256和MD5:

点击位于IDE右上角的Gradle。 点击Gradle图标。 一个弹出窗口将打开,写signingReport后Gradle字和按enter。 将生成签名报告。


在终端输入此命令

格拉德尔签名报告

非常重要的

新闻 Ctrl + enter

机场当局不进入


最简单的方法是

在安卓工作室转到

然后右键单击gradlew,选择在终端中打开 粘贴到terminal ./gradlew signingReport 良好的限度