我刚刚开始为Android开发,而且我没有Google Play开发者的许可。对于我的应用程序,我必须使用APK扩展文件。
我尝试应用play_apk_expansion中包含的downloader_sample代码,但是获取此方法抛出的InvalidKeySpecException
private static PublicKey generatePublicKey(String encodedPublicKey) {
try {
byte[] decodedKey = Base64.decode(encodedPublicKey);
KeyFactory keyFactory = KeyFactory.getInstance(KEY_FACTORY_ALGORITHM);
return keyFactory.generatePublic(new X509EncodedKeySpec(decodedKey));
} catch (NoSuchAlgorithmException e) {
// This won't happen in an Android-compatible environment.
throw new RuntimeException(e);
} catch (Base64DecoderException e) {
Log.e(TAG, "Could not decode from Base64.");
throw new IllegalArgumentException(e);
} catch (InvalidKeySpecException e) {
Log.e(TAG, "Invalid key specification.");
throw new IllegalArgumentException(e);
}
}
我也有
public class SampleDownloaderService extends DownloaderService {
// You must use the public key belonging to your publisher account
public static final String BASE64_PUBLIC_KEY = "MyLVLKey";
// You should also modify this salt
public static final byte[] SALT = new byte[] { 1, 42, -12, -1, 54, 98,
-100, -12, 43, 2, -8, -4, 9, 5, -106, -107, -33, 45, -1, 84
};
如何在没有真正的发布商帐户的情况下测试我的应用程序?
答案 0 :(得分:1)
在调用下载程序函数之前,APK Expansion项目的示例代码会对文件进行特定检查。确保您的文件在SD卡上就位并直接访问它。
要按原样使用内置下载程序,您需要一个发布商帐户,因为这些文件托管在Google Play上。只需稍作更改,您就可以使用下载程序从任何地方下载,例如本地服务器。