Как получить сертификат отпечатка SHA-1 в Android Studio для режима отладки?

Я переместился из Eclipse в Android Studio. Теперь я пытаюсь работать с моим приложением Map. Поэтому мне нужен мой номер сертификата отпечатка пальца SHA-1.

Когда я использовал Eclipse, это было правильно под Windows → Настройки → Android → Строить. Но в Android Studio я не мог найти такой вариант, чтобы я мог легко найти отпечаток пальца. Я использую Windows. Я прочитал ссылку , которая:

Android Studio подписывает ваше приложение в режиме отладки автоматически, когда вы запускать или отлаживать проект из среды IDE.

Итак, я попытался запустить это в командной строке после установки моего пути bin из этой ссылки и, к сожалению, не смог найти свой отпечаток. Он говорит, что это незаконный вариант.

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

Есть ли способ найти отпечаток SHA-1 от Android Studio, как это было очень легко в Eclipse? Как я новичок в Android Studio, какой полный процесс его найти?

Еще одна вещь, которую я хочу добавить, это то, что у меня есть Eclipse, генерирующий отпечаток SHA-1, и ранее у меня было зарегистрировано мое приложение на этом отпечатке пальца в консоли разработчика Google, и я работал над этим приложением в Eclipse с помощью этого ключа API. Можно ли использовать тот же самый ключ API в этом проекте в Android Studio?

Ответ 1

Самый простой способ:

Обновление, добавленное для Android Studio V 2.2 на последнем шаге

Есть два способа сделать это.

1. Быстрее:

  • Откройте Android Studio
  • Откройте проект
  • Нажмите Gradle (с правой стороны вы увидите Gradle Бар)
  • Нажмите "Обновить" (нажмите "Обновить" с Gradle Бар, вы увидите Список Gradle скриптов вашего проекта)
  • Нажмите на свой проект (название вашего проекта Список (root))
  • Нажмите "Задачи"
  • Нажмите на Android
  • Двойной щелчок на signReport (вы получите SHA1 и MD5 в панели запуска (иногда это будет в консоли Gradle))
  • Выберите приложение модуль из раскрывающегося списка выбора модуля для запуска или отладки вашего приложения.

Посмотрите снимок экрана ниже:

введите описание изображения здесь

2. Работа с деятельностью в Google Картах:

  • Откройте Android Studio
  • Откройте свой проект
  • Нажмите Файл → Выбрать Новый → Нажмите Google → Выбрать Активность Google Карт
  • Появится диалог → Нажмите Готово
  • Android Studio автоматически создаст файл XML с именем с google_maps_api.xml
  • Здесь вы можете получить debug SHA1 ( строка 10 файла XML)

Снимок экрана ниже:

Введите описание изображения здесь

Обновление Android Studio V 2.2

Возникает проблема с Исполнением.

Решение:

  • Нажмите Переключить выполнение задач/текстовый режим из Панель запуска

Снимок экрана ниже:

введите описание изображения здесь

Готово.

Ответ 2

Моя проблема такая же, как и в моем Картах Google с 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 из-за того, что мое имя пакета было изменено, а затем использовать этот ключ в моем приложении. Он отлично работает.

Убедитесь, что вы находитесь в папке BIN jdkX.X.X_XX (имя моей папки - jdk1.7.0_71), иначе если вы не знаете, что имя папки, которое вы нашли, открыв папку Java, и вы увидите, что такое имя папки, но вы должны быть в своей папке BIN и затем запустить эту команду. Сегодня у меня есть значение SHA1 в командном окне cmd по описанной выше процедуре.

ПАНОРАМА:

Enter image description here

Ответ 3

Я только что нашел случай получить SHA-1 в Android Studio:

  • Нажмите на свой пакет и выберите "Создать" → Google → Активность Google Карт.
  • Android Studio перенаправляет вас на google_maps_api.xml

И вы увидите все, что вам нужно, чтобы получить google_maps_key.

Image

Ответ 4

Для Mac это работало отлично:

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

Ответ 5

Лучшим решением для генерации ключа SHA-1 для Android является Android Studio.

Нажмите на Gradle в правой части:

Нажмите на значок обновления, и вы увидите имя приложения:

Нажмите "Задачи" → Отчет → Отчет о подписании:

Найдите кнопку SHA-1 в нижней части консоли:

Ответ 6

[Обновлено 2017]

Шаг 1: В верхней правой части Android Studio Нажмите кнопку Gradle.

Android Studio Нажмите на  Gradle вариант

Шаг 2:

- Нажмите "Обновить" (нажмите "Обновить" с Gradle, вы увидите "Список Gradle сценариев вашего проекта" )

- Нажмите на свой проект (ваш список имен проектов (root))

- Нажмите "Задачи"

- Нажмите Android

- Двойной щелчок на signReport (вы получите SHA1 и MD5 в консоли Gradle Консоль/Пуск)

введите описание изображения здесь

Шаг 3: Нажмите на кнопку Gradle Консоль в нижней части Android Studio, чтобы увидеть свой SHA1-ключ.

введите описание изображения здесь

Шаг 4: Теперь у вас есть ключ SHA, но вы не можете запустить проект. Вот почему измените конфигурацию на режим приложения. См. Изображение ниже.

введите описание изображения здесь

Как это.

введите описание изображения здесь

Шаг 5: Счастливое кодирование!

Ответ 7

Я собираюсь ответить на @Hiren Patel, но немного изменился в Android 2.2

введите описание изображения здесь

Ответ 8

Для Linux и Mac

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

Ответ 9

Я напрямую использовал следующую команду с моего Mac с помощью терминала. Я получил SHA1 Finger. Это команда:

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

Ответ 10

Для получения SHA1 для производственного хранилища ключей:

  • Сборка → Создать подписанный APK...

  • Создайте хранилище ключей с паролем и выполните действия

  • Перейдите в папку Mac/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin и перетащите папку bin в терминал после команды cd, чтобы указать на нее, чтобы вы могли использовать keytool инструмент. Итак, в терминале напишите cd (перетащите здесь), затем нажмите 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, даже если вы не видите, что пароль напечатан.

Ответ 11

Если вы используете Android Studio, вы можете получить отпечаток SHA-1 и MD5 (отладить, отпустить... все типы сборки!!) быстро Gradle Задачи:

signingReport

Сертификаты SHA-1 и MD5 показаны в Журналах сообщений.

Плагин Android (настроенный в приложении Gradle) создает режим отладки по умолчанию.

com.android.application

Путь файла к хранилищу ключей:

HOME/.android/debug.keystore

Я рекомендую прикрепить debug.keystore к build.gradle. Для этого поместите файл debug.keystore в папку приложения, а затем добавьте SigningConfigs в Gradle приложение:

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

Дополнительно: если вы хотите создать для выпуска, поместите файл release.keystore в папку приложения. (В этом примере используется тот же debug.keystore.)

Ответ 12

Это очень легко в Gnu/Linux - Mac - Windows

Сначала: - скопируйте эту команду

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

Второе: Теперь скопируйте и вставьте команду в терминал Android Studio введите описание изображения здесь

Результат!

введите описание изображения здесь

Удача!!

Ответ 13

  1. Нажмите на иконку Gradle на правой панели.
  2. Нажмите на название корневого проекта.
  3. Нажмите Задачи
  4. Нажмите Android
  5. Нажмите подписьОтчет
  6. в нижней панели, где вы видите Run report
  7. Нажмите "Переключить задачи" Исключения/текстовый режим ""
  8. вы можете увидеть ша-1

Android Studio SHA-1

Ответ 14

Если у вас Android Studio, то это очень просто. Просто создайте MapActivity, используя Android Studio, и после его создания перейдите в google_maps_api.xml. Там будет ссылка, приведенная в комментариях. Если вы вставьте его в свой браузер, он попросит заполнить несколько деталей и после этого будет создан ваш API. Нет необходимости использовать keytool и все.

Снимок экрана:

Enter image description here

Ответ 15

Это сработало в моем случае: используйте % USERPROFILE% вместо того, чтобы автоматически передавать файл .keystore, сохраненный в этом пути C: Пользователи/имя пользователя /.android:

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

Ответ 16

Используйте простую команду:

keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v

и вы получите ключ SHA1.

Ответ 17

Я хочу добавить одну вещь с ответом Softcoder. Я видел, что некоторые люди не могли правильно указать debug.keystore путь на command line. Они видят, что они выполняют точный процесс, принятый выше, но он не работает. В этот момент попробуйте перетащить debug.keystore и поместите его в командной строке. Это поможет, если принятый ответ не работает для вас. Выполняйте полный процесс без каких-либо колебаний. Это был хороший ответ.

Ответ 18

Для Windows 10, из Android Studio

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

Примечание. Для debug.keystore пароль - "android". Отказоустойчивое хранилище ключей обычно находится в "%USER_PROFILE%"/.android/debug.keystore.

Ответ 19

Я нашел очень простой способ найти вам MD5, SHA-1 отпечаток пальца, используя Android Studio.

  • Запустите проект
  • Перейдите в меню Gradle (Меню: Вид → Инструмент Windows → Gradle)
  • Перейдите в 'signatureReport' в окне Gradle. (Ваш проект → Задачи → андроид → подписьРепорт)
  • Запустите его. (С помощью двойного щелчка или Ctrl + Shift + F10)
  • В окне "Выполнить" вы найдете всю информацию.

Работает только для режима отладки. В режиме realease я не вижу ша-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 для получения ша-1. Здесь официальный Firebase doc:

Get_sha-1_for_release

Ответ 20

Щелкните значок Gradle на правой панели, затем щелкните на корневом каталоге.

Задачи > android > signatureReport

Затем выполняется Gradle script, и вы увидите свои ключи.

Ответ 21

Я сделал это так:

Шаг 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.

Ответ 22

При создании нового "проекта Google Maps" в Android Studio V 1.5.1 на последнем экране открывается файл google_maps_api.xml и отображается экран с инструкциями следующим образом:

Ресурсы

TODO: перед запуском приложения вам понадобится ключ API Карт Google.

Чтобы получить один, перейдите по этой ссылке, следуйте указаниям и нажмите "Создать" в конце:

https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r= ВАШЕ SHA-1 + ВАШЕ ИМЯ ПАКЕТА

Вы также можете добавить свои учетные данные в существующий ключ, используя следующую строку:
YOUR 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 MAPS KEY, просто вырезаем и вставляем ссылку URL, указанную в вашем браузере, и следуйте приведенным выше инструкциям во время создания нового приложения. SHA-1 и Package names уже указаны в ссылке, поэтому вам не нужно их знать. Однако они будут в вашем проекте в файле resources>Values>google_maps_api.xml, который будет завершен, когда вы будете следовать инструкциям по созданию проекта.

Ответ 23

Используйте инструкции из диспетчера API с помощью keytool:

Получить имя пакета из файла AndroidManifest.xml. Затем используйте следующую команду для получения отпечатка пальца:

keytool -list -v -keystore mystore.keystore

Ответ 24

  • Выберите "Файл"> "Структура проекта". Выберите app или mobile какое бы имя вы ни назвали, из Modules

  • Выберите вкладку " Signing ".

  • Вы можете добавить сертификат, нажав на кнопку +.

Ответ 25

Это сработало для меня:

keytool -exportcert -alias androiddebugkey -keystore

Поместите путь к отладке-или-production-keystore здесь, например C:\users\youruser.android\debug.keystore -list -v

Убедитесь, что вы уже находитесь в каталоге Java\jdk*\bin в окне команды или терминала.

Затем используйте Android в качестве пароля.

Иногда веб-ресурсы могут вводить в заблуждение. Это те, кто работает:

Ответ 26

Путь хранилища ключей находится в двойных кавычках. Он работает нормально.

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

Ответ 27

Если вам нужен SHA1 для Карт Google, вы можете просто увидеть свой журнал ошибок LogCat.

Ответ 28

Вы можете использовать следующую команду и изменить AJAY SUNDRIYAL с вашим системным именем. Это только для вашего debug.keystore.This будет работать для вас.

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

Ответ 29

Самый простой способ получить отпечаток пальца - это перейти от приложения к подписанному отчету, щелкнув выпадающее меню и щелкнув по нему.

введите описание изображения здесь

Затем вы сможете увидеть отпечаток sha1 в нижней панели, где вы увидите отчет отладки и трассировку стека. N.B не забудьте переключиться обратно в приложение, когда вы хотите запустить приложение на устройстве или эмуляторе.

Ответ 30

Просто вызовите эти методы на экране заставки: 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();
        }

Благодарю вас.