APK Expansion - 测试时出错

时间:2013-02-26 05:22:47

标签: android apk expansion

我正在处理APK扩展文件,我查看了这些链接:

1)Steps to create APK expansion file

2)http://ankitthakkar90.blogspot.in/2013/01/apk-expansion-files-in-android-with.html

我从路径sdk-path / extras / google

导入了market_licensing,play_apk_expansion

play_apk_expansion包含三个项目downloader_library,zip_file,downloader_sample。

现在我有SampleDownloaderActivity,我正面临这个问题:

我还没有在控制台中上传apk文件,我正在尝试测试SampleDownloaderActivity项目,但是我收到了这个错误:

02-21 12:54:13.150: E/AndroidRuntime(544): FATAL EXCEPTION: main
02-21 12:54:13.150: E/AndroidRuntime(544): java.lang.IllegalArgumentException: java.security.spec.InvalidKeySpecException: java.io.EOFException: DEF length 67 object truncated by 48
02-21 12:54:13.150: E/AndroidRuntime(544):  at com.google.android.vending.licensing.LicenseChecker.generatePublicKey(LicenseChecker.java:121)
02-21 12:54:13.150: E/AndroidRuntime(544):  at com.google.android.vending.licensing.LicenseChecker.<init>(LicenseChecker.java:92)
02-21 12:54:13.150: E/AndroidRuntime(544):  at com.google.android.vending.expansion.downloader.impl.DownloaderService$LVLRunnable.run(DownloaderService.java:765)
02-21 12:54:13.150: E/AndroidRuntime(544):  at android.os.Handler.handleCallback(Handler.java:587)
02-21 12:54:13.150: E/AndroidRuntime(544):  at android.os.Handler.dispatchMessage(Handler.java:92)
02-21 12:54:13.150: E/AndroidRuntime(544):  at android.os.Looper.loop(Looper.java:130)
02-21 12:54:13.150: E/AndroidRuntime(544):  at android.app.ActivityThread.main(ActivityThread.java:3683)
02-21 12:54:13.150: E/AndroidRuntime(544):  at java.lang.reflect.Method.invokeNative(Native Method)
02-21 12:54:13.150: E/AndroidRuntime(544):  at java.lang.reflect.Method.invoke(Method.java:507)
02-21 12:54:13.150: E/AndroidRuntime(544):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-21 12:54:13.150: E/AndroidRuntime(544):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-21 12:54:13.150: E/AndroidRuntime(544):  at dalvik.system.NativeStart.main(Native Method)
02-21 12:54:13.150: E/AndroidRuntime(544): Caused by: java.security.spec.InvalidKeySpecException: java.io.EOFException: DEF length 67 object truncated by 48
02-21 12:54:13.150: E/AndroidRuntime(544):  at org.bouncycastle.jce.provider.JDKKeyFactory.engineGeneratePublic(JDKKeyFactory.java:92)
02-21 12:54:13.150: E/AndroidRuntime(544):  at org.bouncycastle.jce.provider.JDKKeyFactory$RSA.engineGeneratePublic(JDKKeyFactory.java:396)
02-21 12:54:13.150: E/AndroidRuntime(544):  at java.security.KeyFactory.generatePublic(KeyFactory.java:177)
02-21 12:54:13.150: E/AndroidRuntime(544):  at com.google.android.vending.licensing.LicenseChecker.generatePublicKey(LicenseChecker.java:112)

据我所知它与BASE64_PUBLIC_KEY的问题,但我没有给任何键因为我没有上传apk,以及如何创建obb文件,我有大约100图像,约40mb,其中我需要放这些文件吗?

2 个答案:

答案 0 :(得分:4)

在Android中使用APK Expansion files时,与早期新的Android google play开发者控制台不同,在帐户详细信息中enter image description here

每个Android谷歌播放开发者控制台帐户有一个公钥,现在谷歌播放开发者控制台上的每个应用程序帐户都有唯一的公钥。

for testin apk扩展文件上传应用程序,上传apk后你会看到一些像这样的选项

enter image description here

点击服务&amp; API

enter image description here

选择示例中的公钥复制粘贴

public class SampleDownloaderService extends DownloaderService {
// stuff for LVL -- MODIFY FOR YOUR APPLICATION!
private static final String BASE64_PUBLIC_KEY ="paste here";

在上传apk时,你应该上传任何名称的文件(可能是压缩文件)..你需要确保你上传的文件的大小是你在sampledownloader Activity中放入的文件大小

private static final XAPKFile[] xAPKS = { new XAPKFile(true, 1, 425553759L)

1是清单中指定的android:versionCode。

enter image description here

上传apk文件时上传的xapk文件将被重命名并下载为sd卡中的obb文件

click here

中解压缩obb文件及其他内容

答案 1 :(得分:0)

  

阅读这篇文章的人的更新:

注1

您不能再使用草稿了,因为获取扩展文件的链接尚未生效。您必须先使用扩展文件将版本上传到Alpha或Beta。 (只能从您上传的第二个apk中添加扩展文件)因此,请确保在单击APK下的开发人员发布部分中的详细信息时看到列出的apk扩展文件。

注2

如果您正在使用android studio并希望使用下载程序库,请不要只将程序包名称和java文件复制到您自己的应用程序src目录中。在eclipse中导入下载程序库并选择export =&gt; gradle构建文件。之后,您可以将该库导入为android studio中的模块。

注3

不确定这一点,但我认为至少需要通过Play商店下载应用程序一次,并且可以通过测试设备上的帐户访问该应用程序。因此,如果您正在使用alpha创建一个google +测试组并添加自己或其他测试设备。