【问题标题】:APK Expansion file download doesn´t workAPK 扩展文件下载不起作用
【发布时间】:2014-01-31 06:35:00
【问题描述】:

我需要将扩展​​支持集成到我的应用中。到目前为止,我的应用程序中有示例 DownloaderActivity、Service 和 Receiver。

现在我设置 XAPKFile

        return new XAPKFile[]{new XAPKFile(
            true,//is main?
            3,//Version
            4550105L)};//File size

文件大小是正确的,不是“磁盘大小”,但我也试过了。

版本号始终等于我的apk包版本。

我将这两个版本都作为 alhpa 版本上传到市场中以对其进行测试并使其他人无法访问。

测试帐号是开发者帐号。

问题是现在,下载不会开始。我总是收到提示“下载失败,因为您可能没有购买此应用程序”。

我昨天在下载器服务中调试了很多应用程序,以找出实际问题。我在 LicenseValidator.java 验证方法中从服务器返回的响应代码始终为 NOT_LICENSED。

RSA 密钥是正确的。

为什么我的应用没有获得许可?

编辑:

我现在在另一个帐户上进行了测试,得到了不同的错误:

该帐户已作为测试帐户添加到开发者控制台的许可中

【问题讨论】:

    标签: android android-lvl apk-expansion-files


    【解决方案1】:

    我已经等了一天,现在它神奇地起作用了。 Google 似乎需要一些时间来取得进展。

    编辑:

    现在它再次停止工作,并出现错误“下载失败,因为找不到资源”,真有趣...

    【讨论】:

    • 你解决了吗? :D 我现在就想杀人!
    • :D 实际上,我不知道我做了什么,但它又开始工作了。可悲的是我不再参与这个项目
    • 好吧,我猜唯一的方法是在测试后稍等片刻......我使用了许可证测试并尝试了所有响应......看起来服务器卡在“连接错误”
    【解决方案2】:

    确保文件大小与上传到安卓控制台的扩展文件大小一致,

     return new XAPKFile[]{new XAPKFile(
            true,//is main?
            3,//Version
            99695373L)};//File size
    

    我也遇到了同样的问题,但是问题来自这里

    boolean expansionFilesDelivered() {
        for (XAPKFile xf : xAPKS) {
            String fileName = Helpers.getExpansionAPKFileName(this, xf.mIsMain, xf.mFileVersion);
            if (!Helpers.doesFileExist(this, fileName, xf.mFileSize, false))
                return false;
        }
        return true;
    }
    

    它返回false,所以即使文件被下载,应用程序也无法验证扩展文件,所以我通过添加else来修复

    boolean expansionFilesDelivered() {
        for (XAPKFile xf : xAPKS) {
            String fileName = Helpers.getExpansionAPKFileName(this, xf.mIsMain, xf.mFileVersion);
    
            if (!Helpers.doesFileExist(this, fileName, xf.mFileSize, true)) {
                return false;
            }else{
                return true;
            }
        }
        return true;
    }
    

    在帐户设置中,将许可测试响应设置为 LICENSED

    希望能帮到你:)

    【讨论】:

      【解决方案3】:

      当我使用 Android 5.0.1 时,我设置了 targetSdkVersion 19,然后我的问题就解决了。

      <uses-sdk
          android:minSdkVersion="9" 
          android:targetSdkVersion="19" />
      

      我使用 Android 5.0.1 我设置了 targetSdkVersion 21 我有以下错误。

      <uses-sdk
              android:minSdkVersion="9" 
              android:targetSdkVersion="21" />
      

      下载失败,因为您可能没有购买此应用

      这样的LogCat错误:

      12-28 15:06:34.521: E/AndroidRuntime(14153): FATAL EXCEPTION: main
      12-28 15:06:34.521: E/AndroidRuntime(14153): Process: your_app_package_name, PID: 14153
      12-28 15:06:34.521: E/AndroidRuntime(14153): java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.android.vending.licensing.ILicensingService }
      12-28 15:06:34.521: E/AndroidRuntime(14153):    at android.app.ContextImpl.validateServiceIntent(ContextImpl.java:1674)
      12-28 15:06:34.521: E/AndroidRuntime(14153):    at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1773)
      12-28 15:06:34.521: E/AndroidRuntime(14153):    at android.app.ContextImpl.bindService(ContextImpl.java:1751)
      12-28 15:06:34.521: E/AndroidRuntime(14153):    at android.content.ContextWrapper.bindService(ContextWrapper.java:538)
      12-28 15:06:34.521: E/AndroidRuntime(14153):    at com.google.android.vending.licensing.LicenseChecker.checkAccess(LicenseChecker.java:150)
      12-28 15:06:34.521: E/AndroidRuntime(14153):    at com.google.android.vending.expansion.downloader.impl.DownloaderService$LVLRunnable.run(DownloaderService.java:768)
      12-28 15:06:34.521: E/AndroidRuntime(14153):    at android.os.Handler.handleCallback(Handler.java:739)
      12-28 15:06:34.521: E/AndroidRuntime(14153):    at android.os.Handler.dispatchMessage(Handler.java:95)
      12-28 15:06:34.521: E/AndroidRuntime(14153):    at android.os.Looper.loop(Looper.java:135)
      12-28 15:06:34.521: E/AndroidRuntime(14153):    at android.app.ActivityThread.main(ActivityThread.java:5221)
      12-28 15:06:34.521: E/AndroidRuntime(14153):    at java.lang.reflect.Method.invoke(Native Method)
      12-28 15:06:34.521: E/AndroidRuntime(14153):    at java.lang.reflect.Method.invoke(Method.java:372)
      12-28 15:06:34.521: E/AndroidRuntime(14153):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
      12-28 15:06:34.521: E/AndroidRuntime(14153):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-04
        • 2013-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        相关资源
        最近更新 更多