获取SHA-1指纹的方法与获取指纹的方法相同吗?以前,我正在运行此命令:

我不清楚我得到的结果是SHA-1指纹.有人可以澄清一下吗?
我在github上下载了一个Android应用程序的zip文件,我正在尝试运行它,但是我收到了一条包含此消息的对话框
app-release-unsigned.apk is not signed. Please configure the signing information for the selected flavor using the Project Structure dialog.
Run Code Online (Sandbox Code Playgroud)
我正在使用Android Studio.我应该做些什么?
您好我最近关注了Google Map API v2上的Vogella教程.代码与他的相似.但由于某种原因,地图显示为空白,而logcat也没有显示任何错误.我也按照这个视频来获取SHA1指纹然后我把API密钥放在清单文件中.我使用了调试密钥库C:\ Users\UserName.android\debug.keystore,它也是Eclipse中的默认调试密钥库 - > Windows - >首选项 - > Android - > Build.
我还生成了一个新的API密钥,它仍然无法正常工作.
清单文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.barcodelibrary"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="15" />
<permission
android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.SET_DEBUG_APP"></uses-permission>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".HomeActivity"
android:label="@string/title_activity_home" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ScanActivity"/> …Run Code Online (Sandbox Code Playgroud) 我的谷歌地图应用程序在设备上使用调试谷歌地图API KEY工作正常,但当我为我的应用程序创建签名的apk与发布谷歌地图API KEY,它不显示地图.要生成发布模式google API KEY,我在我的密钥库中使用SHA1指纹.我还在我的项目设置中定义了"签名和构建类型",如developer.android.com(http://developer.android.com/tools/publishing/app-signing.html)所述.
尝试了所有可能的解决方案(删除apk,然后再重新安装,重新启动设备,清理项目).没有用.任何人都有一个很好的解决方案,我的问题请帮忙.仅供参考使用Android工作室平台.
我目前正在开发Android应用程序,而我正在使用Google Maps API.在开发人员控制台中,我添加了SHA1证书打印,然后是我的包名.即使我使用keytool打印此SHA1证书,我也无法访问这些地图.我做了很多搜索,但每个主题都让我得到答案,其中错误是在开发人员控制台中错误的API密钥.但我选择了正确的SHA1,这是我的证书之一.
提前致谢 !
1)创建了新项目.
2)创建了选定的谷歌地图.
3)调试google_maps_api.xml步骤.
创建了谷歌开发者控制台API密钥.
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">
AIzaSyDRuMUTElAoXoK2y2rXSqtpvdQSZ12z_dk
</string>
4)发布google_maps_api.xml步骤.
developers.google.com/maps/documentation/android/signup步骤.
keytool -list -keystore your_keystore_name
keytool -list -v -keystore your_keystore_name -alias your_alias_name
SHA1 :: 0D :: 74:D3 :: E1:43 :: 71 :: 62:90 :: A1:66:6E:__:5D:75已添加
创建了谷歌开发者控制台API密钥.
<string name="google_maps_key" templateMergeStrategy="preserve"
translatable="false">
AIzaSyB3d_usre_Joj_TrgP3aKtdkrSt_tTeqGI
</string>
添加了不同的发布密钥
5)AndroidManifest.xml
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission …
我收到此错误:
E/Google Maps Android API: Authorization failure. Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map.
E/Google Maps Android API: In the Google Developer Console (https://console.developers.google.com)
Ensure that the "Google Maps Android API v2" is enabled.
Ensure that the following Android Key exists:
API Key: [The key...]
Android Application (<cert_fingerprint>;<package_name>):
Run Code Online (Sandbox Code Playgroud)
这就是我所看到的,而不是地图正常工作:
在我的app/build.gradle,我有这个:
implementation 'com.google.android.gms:play-services-base:16.1.0'
implementation 'com.google.android.gms:play-services-analytics:16.0.8'
implementation 'com.google.android.gms:play-services-awareness:16.0.0'
implementation 'com.google.android.gms:play-services-cast:16.2.0'
implementation 'com.google.android.gms:play-services-gcm:16.1.0'
implementation 'com.google.android.gms:play-services-location:16.0.0'
Run Code Online (Sandbox Code Playgroud)
play-services-location是我需要的谷歌地图,对吗?我正在查看https://developers.google.com/android/guides/setup上的列表,我认为这Google Location and Activity Recognition - com.google.android.gms:play-services-location:16.0.0就是 …
google-maps google-maps-api-3 google-play-services google-maps-android-api-2 google-maps-android-api-1
好的,我想先说我已经尝试了多种解决方案,例如:
Android Studio - Google 地图在真正的 Android 设备上仍然空白
发布中的 Android Google Maps API 不起作用
我尝试获取 SHA1 指纹,并将这些“限制”添加到 Google Developer Console API Credentials。
还尝试将 API 硬编码到清单中(找不到推荐这个的链接)。
在这一点上,我已将范围缩小到这些可能的问题:
1)我使用的密钥库在检查时有以下行
签名算法名称:SHA256withRSA
我注意到许多解决方案都谈到了 SHA1withRSA。但是因为这需要创建一个新的密钥库,我必须为此创建一个全新的应用程序,所以我避免了这个结论。
2) 我还注意到上传到 Play 控制台的原始 APK 实际上有效。但是派生的 APK(我假设是上传到 Play 商店的那个)不起作用。
3) Google Developer Console 中的 API 库没有专门的
“谷歌地图 Android API v2”
它只显示“Google Maps Android API”。我认为这不应该是问题。
只是为了澄清,问题是我的应用程序中的地图出现空白。
我已经阅读了所有类似的问题并完成了其中描述的所有内容,但没有帮助.
Google Maps API v2已启用且API密钥正确无误
我刚刚在"新项目"中选择了GoogleMapsActivity,然后创建了一个key.jks,通过keytool创建了sha1,创建了公共api访问密钥,将我的API密钥放入了清单.
我试过:clean-rebuild-unistall app-install
多次更新api密钥
用new key.jks创建一个新项目(并且一遍又一遍)
删除并创建api密钥
这是我的清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dandewine.user.thinkmobiletest" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!--
Run Code Online (Sandbox Code Playgroud)
使用Google Maps Android API v2不需要ACCESS_COARSE/FINE_LOCATION权限,但建议使用这些权限. - >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIza**************************" />
<activity
android:name=".ActivityMain"
android:label="@string/title_activity_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
这是我的活动:
public class ActivityMain extends FragmentActivity implements OnMapReadyCallback {
@Override
protected void onCreate(Bundle savedInstanceState) { …Run Code Online (Sandbox Code Playgroud) 我试图在一个非常简单的应用程序(一个只有谷歌地图活动的新项目)中显示谷歌地图,清单具有以下权限:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ivan.pruebamaps">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<activity
android:name=".MapsActivity"
android:label="@string/title_activity_maps">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
我在@ string/google_maps_key中有一个有效的密钥.
它没有触及mainActivity,就像它在android studio中创建的一样.
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this); …Run Code Online (Sandbox Code Playgroud) android ×9
google-maps ×9
api ×1
certificate ×1
github ×1
google-plus ×1
key ×1
keystore ×1
sha ×1
sha1 ×1