我遵循此链接http://eagle.phys.utk.edu/guidry/android/apiKey.html生成证书的MD5指纹。
我也看到了以下线程:
谷歌地图错误时,试图获得我的API密钥为android
如何找到我的Android应用的MD5指纹
我使用的是Windows xp操作系统。Admin.androiddebug.keystore.
但在CMD提示符下给出响应网络路径未找到
-
请指导我如何生成MD5摘要。
-
我也想知道调试键的区别是什么和发布
键? ?这两把钥匙是不同的吗?如果是,那么如何我能生成它们吗?
-
是否有办法采用我们可以使用相同的调试和发布
-
定位调试。系统上的密钥存储库。通常在windows的
USER_HOMELocal SettingsApplication Data.android
文件夹中 -
使用keytool工具生成证书指纹(MD5)。默认JDK安装自带的keytool工具。
C:>keytool -list -alias androiddebugkey -keystore .androiddebug。
你可以根据你的调试证书获得一个临时的Maps API Key,但是在你发布应用程序之前,你必须根据你的发布证书注册一个新的Key,并相应地更新MapViews中的引用
如果您的应用程序访问服务或使用第三方库,要求您使用基于您的私钥的密钥,则可能还需要获取其他发布密钥。例如,如果应用程序使用MapView类(它是Google Maps外部库的一部分),则需要向Google Maps服务注册应用程序并获得Maps API密钥。有关获取Maps API密钥的信息,请参见获取Maps API密钥。
参考:
获得如下所述的调试签名
$ 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函数也可以帮助
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;
}