【问题标题】:APK Expansion - error when testingAPK 扩展 - 测试时出错
【发布时间】:2014-09-25 03:10:18
【问题描述】:

我正在处理 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 proj,但是我收到了这个错误:

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,其中我需要放这些文件吗?

【问题讨论】:

    标签: android apk expansion


    【解决方案1】:

    虽然在 Android 中使用 APK Expansion files 与之前在 Account details 中的新 android google play 开发者控制台不同

    每个 android google play 开发者控制台帐户都有一个公钥,现在每个 google play 开发者控制台帐户上的每个应用程序都有唯一的公钥。

    对于testin apk扩展文件上传app,上传apk后你会看到一些类似这样的选项

    点击服务和API

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

    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。

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

    click here中解压obb文件等等

    【讨论】:

    • 非常感谢我已经这样做了,但是现在我正在通过手动将 obb 文件添加到 sdcard 中进行检查,我收到了这个错误,我直到现在还没有上传应用程序......我是上传前进行测试
    • 我按照所有步骤在 google play 开发者控制台上上传扩展文件和 apk 并从 eclipse 运行我的项目。收到错误消息“下载失败,因为找不到资源”。为什么会这样?我错过了什么?
    • @Akanksha 在测试之前您需要导出--->1> 签署 apk 文件并在您的设备或模拟器中使用该 apk,通过 google 帐户登录 2> 登录 gmail ID 的条件(testID) 应该在google play dev console 测试账号处提交!完成第二件事后,您需要等待 3 小时到 Google 服务器以激活您的 gmail id 作为 Google 服务的测试 id。
    【解决方案2】:

    阅读这篇文章的人更新:

    注意 1

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

    注意 2

    如果您正在使用 android studio 并想使用下载器库,请不要将包名和 java 文件复制到您自己的应用程序 src 目录中。在eclipse中导入下载器库,选择export => gradle build files。之后,您可以将库作为模块导入 android studio。

    注意 3

    对此不确定,但我也认为有必要通过 Play 商店至少下载一次应用程序,并使用测试设备上的帐户访问它。因此,如果您正在使用 alpha 版,请创建一个 google+ 测试组并将您自己或其他测试设备添加到其中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-11
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 2021-09-30
      • 1970-01-01
      • 2017-04-09
      • 1970-01-01
      相关资源
      最近更新 更多