2013-02-26 162 views
1

我对APK扩展文件时,我特地到这些链接:APK扩展 - 错误测试

1)Steps to create APK expansion file

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

我从进口market_licensing,play_apk_expansion路径sdk-path/extras/google

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文件,我有大约100MB左右的图像,我需要把这些文件放在哪里?

回答

4

虽然在Android中使用APK Expansion files不像帐户细节enter image description here

每个谷歌Android游戏开发者控制台帐号erlier有一个公钥,现在每每个应用程序在谷歌Play开发者控制台帐户较早新谷歌Android游戏开发者控制台拥有独特的公钥。

为TESTIN APK扩展文件上传应用程序,uploadin的APK之后你看到这样的服务这样

enter image description here

点击& 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中放入的文件大小活动

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

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

enter image description here

你上传什么xapk文件同时上传APK相同的文件将被重新命名,并在SD卡

下载为OBB文件unziping的OBB文件,更click here

+0

非常感谢我已经做到了,但现在我检查通过手动添加的OBB文件中的SD卡,我得到这个错误,而我还没有上传应用程序到现在...我上传 – Goofy 2013-02-26 11:05:33

+0

之前只是测试http://stackoverflow.com/questions/15085904/android-expansion-files-resource-not-found-when-testing请看看这个。 – Goofy 2013-02-26 11:06:03

+0

我遵循所有步骤上传扩展文件和apk在谷歌播放开发者控制台,并从日食运行我的项目。收到错误消息“下载失败,因为资源无法找到”。为什么这样呢?我错过了什么? – 2014-01-29 09:22:38

0

Update for those reading this post:

注1

您不能使用草稿因为获取扩展文件的链接不会被激活。您必须先使用扩展文件将版本上传到Alpha或Beta。 (只能通过第二个apk上传和扩展才能添加扩展文件)因此,请确保在单击APK下的开发者发布部分中的详细信息时看到列出的apk扩展文件。

注2:

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

注3:

不知道这一点,但我也认为这是neccesary通过Play商店下载应用ATLEAST一次,并有机会获得它与你的测试设备上的帐户。因此,如果您正在使用alpha创建一个Google +测试组并添加自己或其他测试设备。