Если вы можете использовать psutil , то это отлично работает:
import subprocess
import psutil
def kill(proc_pid):
process = psutil.Process(proc_pid)
for proc in process.children(recursive=True):
proc.kill()
process.kill()
proc = subprocess.Popen(["infinite_app", "param"], shell=True)
try:
proc.wait(timeout=3)
except subprocess.TimeoutExpired:
kill(proc.pid)
Наконец-то я решил, что проблема в том, что файл google_maps_api.xml, предоставленный api, не был загружен в релиз, поэтому i
мне понравилось:
buildTypes {
debug {
manifestPlaceholders = [mapsKey: "AIzaSyB8o9KzQ5YN8U8AFS************"]
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
manifestPlaceholders = [mapsKey: "AIzaSyApLacqgkdIR7uEpcf*****************"]
}
}
, а затем в моем AndroidManifest
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="${mapsKey}" />
Ссылка: https://stackoverflow.com/a/33917692/3235560
, тогда я зарегистрировал 2 разных ключа, каждый из которых имеет правильный отпечаток sha1, один отладочный и другой, заданный консолью Google Play (не сертификат загрузки, а другой созданный Google).
Очень спасибо Zuhad и Andy Developer за вдохновение.
Вот ответ, почему вы не видите карту Google.
Недавно я загрузил APK в магазин Google Play, и я столкнулся с такой же проблемой после проверки Play Console. Я нашел решение для эта проблема.
У них нет проблем с вашим ключом, но проблема с вашим SHA-1. Вы подписали свой APK с вашим SHA-1, который прекрасен, а затем загрузите APK, это тоже прекрасно.
Но согласно новому обновлению Play Console при подписании вашего APK с SHA-1 и загрузке APK он подписан только вами, но согласно новому обновлению он также подписан Google Play для большей безопасности. Посмотрите здесь часть раздела Google Play:
При подписании приложения Google Play: вы подписываете свое приложение с помощью своего загрузочного ключа. Затем Google проверяет и удаляет подпись подписи для загрузки. Наконец, Google повторно подписывает приложение с помощью оригинального ключа подписи приложения, который вы предоставили, и доставляет ваше приложение пользователю.
blockquote>Здесь вы можете ссылаться на .
Теперь ответ на ваш вопрос: После успешной загрузки APK вы можете видеть, что в разделе с двумя SHA-1 1-й SHA-1 Google создал свой собственный, а второй SHA-1 - ваш.
Итак, просто скопируйте Google SHA-1 и вставьте его на консоль, где вы создаете ключ API карты Google.
Типы сборки отладки и выпуска вашего приложения подписаны двумя разными ключами.
Вам необходимо зарегистрировать оба ключа в Картах Google и Facebook для доступа к их услугам
cat deployment_cert.der |openssl sha1 -binary | openssl base64
, и он дал мне ключ api для входа в Facebook, который теперь работает, но я не могу заставить Maps работать. В файле под /app/src/release/res/values/google_maps_api.xml я добавил ключ, предоставленный из консоли Maps, в котором я также зарегистрировал отпечаток sha1 из своего собственного сертификата (сгенерированного из студии android) и отпечатка sha1 из play store console, но он не работает
– exrezzo
21 June 2017 в 09:39
С вдохновением от @Andy Developer, я смог отобразить карту после того, как приложение было загружено в Google Play. Это были следующие шаги:
Чтобы Facebook генерировал хеш-ключ, используйте приведенный ниже код:
try {
PackageInfo info = getPackageManager().getPackageInfo(
"YOUR PACKAGE NAME",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
Как только вы получите хэш-код, вставьте его в консоль разработчика Facebook и продвигайтесь вперед
. помогает :)
buildTypes { debug { manifestPlaceholders = [google_map_key: "AIzaSyB8o9KzQ5YN8U8AFSxbTJLheFiubF****"] } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' manifestPlaceholders = [google_map_key: "AIzaSyApLacqgkdIR7uEpcf7EDuGvsQlgh*****"] signingConfig signingConfigs.config }
– exrezzo
21 June 2017 в 09:51