Как получить сертификат отпечатка 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
- Нажмите на иконку Gradle на правой панели.
- Нажмите на название корневого проекта.
- Нажмите Задачи
- Нажмите Android
- Нажмите подписьОтчет
- в нижней панели, где вы видите Run report
- Нажмите "Переключить задачи" Исключения/текстовый режим ""
- вы можете увидеть ша-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();
}
Благодарю вас.