获取地图API密钥:Android
我按照此链接生成证书的MD5指纹 我也看到了以下线索: 我正在使用Windows xp操作系统。debug.keystore位于C:\Documents and Settings\Admin.android\debug.keystore 但在cmd提示符上,它给出了未找到的响应网络路径获取地图API密钥:Android,android,google-maps,Android,Google Maps,我按照此链接生成证书的MD5指纹 我也看到了以下线索: 我正在使用Windows xp操作系统。debug.keystore位于C:\Documents and Settings\Admin.android\debug.keystore 但在cmd提示符上,它给出了未找到的响应网络路径 请指导我如何生成MD5摘要 我也想知道调试键的区别是什么 释放 钥匙??这是两把不同的钥匙吗??如果是,那么 怎么 我可以生成它们吗 我们是否可以采用相同的调试和发布方式 不同机器上的钥匙 在系统上找到de
- 在系统上找到debug.keystore。它通常位于windows上的
文件夹中USER\u HOME\Local Settings\Application Data\.android
- 使用keytool实用程序生成证书指纹(MD5)。默认JDK安装附带的keytool实用程序 C:>keytool-list-alias androiddebugkey-keystore.android\debug.keystore-storepassandroid-keypassandroid
获取调试签名,如下所述
$ keytool -list -keystore ~/.android/debug.keystore
...
Certificate fingerprint (MD5): 94:1E:43:49:87:73:BB:E6:A6:88:D7:20:F1:8E:B5:98
或者最好使用从sigs[i].hashCode()获得的代码
那么这个util func也可能有帮助
static final int DEBUG_SIGNATURE_HASH = 695334320;// value shpuld be the one you get above
public static boolean isDebugBuild(Context context) {
boolean _isDebugBuild = false;
try {
Signature [] sigs = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES).signatures;
Log.d(TAG, "DEBUG_SIGNATURE_HASH->"+DEBUG_SIGNATURE_HASH);
for (int i = 0; i < sigs.length; i++) {
Log.d(TAG, i+"->"+sigs[i].hashCode());
if ( sigs[i].hashCode() == DEBUG_SIGNATURE_HASH ) {
Log.d(TAG, "This is a debug build!");
_isDebugBuild = true;
break;
}
}
} catch (NameNotFoundException e) {
e.printStackTrace();
}
return _isDebugBuild;
}
static final int DEBUG\u SIGNATURE\u HASH=695334320;//值应该是您在上面得到的值
公共静态布尔值isDebugBuild(上下文){
布尔值_isDebugBuild=false;
试一试{
签名[]sigs=context.getPackageManager().getPackageInfo(context.getPackageName(),PackageManager.GET_SIGNATURES);
Log.d(标记“DEBUG\u SIGNATURE\u HASH->”+DEBUG\u SIGNATURE\u HASH);
对于(int i=0;i”+sigs[i].hashCode());
if(sigs[i].hashCode()==DEBUG\u SIGNATURE\u HASH){
d(标记“这是一个调试版本!”);
_isDebugBuild=true;
打破
}
}
}catch(nameNotFounde异常){
e、 printStackTrace();
}
返回(isDebugBuild);;
}
@Padma Kumar:是的,我生成了md5证书,但我对调试密钥和发布密钥仍有疑问。请参阅:发布密钥是用于签署应用程序的密钥,允许您将应用程序上载到Android Market。调试键用于在测试设备/仿真器时“推送”应用程序。为了获得MD5证书,您需要使用调试密钥而不是发布密钥。@Siddhartlele:谢谢您的回复:好的,这样我就可以使用其他密钥来签名n导出我的应用程序??关于我的第三个问题,请给我一些指导。我不确定是否在不同的机器上为Maps API使用不同的调试键。但是您当然不需要使用不同的释放密钥。事实上,建议您将释放密钥存储在安全的地方。使用特定的发布密钥对应用程序进行签名后,只有该密钥才能用于为应用程序提供后续更新。同样,关于调试键,我真的不知道它是如何工作的。谢谢@warenija:plz回答我的第三个问题当然欢迎。不幸的是,我对第三个问题没有明确的答案,让我尽我所知尝试一下;每台机器仅调试密钥更改,已签名应用的释放密钥相同。这就是为什么我会更新每台机器的调试密钥,并相应地检查isDebugBuild。