1

我将我的 apk 上传到 Google Play,但由于我有一个扩展文件而不得不再次上传,当然你不能在第一次尝试时上传扩展文件。当我第二次上传 apk 时,我将版本更改为 2,并将我的扩展文件命名为 main.2.com.ssowens.groovebass.obb 。因此,我在我的代码中调整了版本并重命名了 obb 文件。现在找不到该文件,我一生都无法弄清楚原因。对于版本更新,我还需要更新什么?

这是我更改的内容:清单

    <?xml version="1.0" encoding="utf-8"?>
     <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="main.2.com.ssowens.groovebass.obb"
        android:versionCode="2"
        android:versionName="1.0" >

在 DownloaderFragment 中

       public static final int MAIN_EXPANSION_FILE_VERSION = 2;

这里没有改变任何东西,但似乎是失败的地方

       boolean expansionFilesDelivered() {
       for (XAPKFile xf : xAPKS) {
        String fileName = Helpers.getExpansionAPKFileName(getActivity(), 
            xf.mIsMain,  xf.mFileVersion);
        if (VERBOSE) Log.v(TAG, "+++ fileName +++ " + fileName + " " + xf.mFileSize + " " 
        + " " + xf.mIsMain + " , " + xf.mFileVersion);
        if (!Helpers.doesFileExist(getActivity(), fileName, xf.mFileSize, false))
            return false;
     }
      return true;
     }    

以下是日志中打印的内容:

09-16 17:56:16.045: E/Trace(20344): error opening trace file: No such file or directory (2)
09-16 17:56:16.138: V/DownloaderFragment(20344): +++ fileName +++ main.2.com.ssowens.groovebass.obb FileSize=> 519953080   xf.mIsMain=> true  xf.mFileVersion=> 2
09-16 17:56:16.138: V/DownloaderFragment(20344): +++ expansionFilesNotDelivered +++
09-16 17:56:16.232: D/LVLDL(20344): Service Bound
09-16 17:56:16.271: D/libEGL(20344): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
09-16 17:56:16.310: D/libEGL(20344): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
09-16 17:56:16.318: D/libEGL(20344): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
09-16 17:56:16.443: D/OpenGLRenderer(20344): Enabling debug mode 0
09-16 17:56:16.802: I/LicenseChecker(20344): Binding to licensing service.
09-16 17:56:17.013: I/LicenseChecker(20344): Calling checkLicense on service for com.ssowens.groovebass
09-16 17:56:17.013: I/LicenseChecker(20344): Start monitoring timeout.
09-16 17:56:17.615: I/LicenseChecker(20344): Received response.
09-16 17:56:17.615: I/LicenseChecker(20344): Clearing timeout.
09-16 17:56:17.623: E/LicenseValidator(20344): Signature verification failed.

这是文件的名称:

main.2.com.ssowens.groovebass.obb

已验证文件目录、文件大小和文件名。

4

2 回答 2

1

上传到 Google Play 后,我遇到了类似的无法读取扩展文件的问题(第二次将带有扩展包的 APK 文件上传到 Google Play)

我意识到 Google Play 会根据包版本代码自动将扩展文件命名从 1 更新为 2。所以我加入了PackageInfo VersionCodeAPKExpansionSupport问题就解决了。

例子:

PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
ZipResourceFile zrf =     APKExpansionSupport.getAPKExpansionZipFile(TravelDoorStartActivity.this, pInfo.versionCode, 0);

希望这会帮助像我这样的其他初学者:)

于 2015-07-20T04:44:01.387 回答
0

看起来你用扩展文件名代替了包名

package="main.2.com.ssowens.groovebass.obb"

我想你应该有:

package="com.ssowens.groovebass"

扩展文件命名规则为:

[main|patch].<expansion-version>.<package-name>.obb
于 2013-12-06T09:32:09.717 回答