更改了版本代码,现在找不到扩展文件

时间:2013-09-16 22:05:25

标签: android apk apk-expansion-files

我上传了我的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

验证文件目录,文件大小和文件名。

2 个答案:

答案 0 :(得分:1)

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

我发现Google Play会根据软件包版本代码自动将扩展文件从1更新为2。所以我在PackageInfo VersionCode添加了APKExpansionSupport,问题就解决了。

示例:

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

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

答案 1 :(得分:0)

看起来您已将扩展文件名放在包名称

的位置
package="main.2.com.ssowens.groovebass.obb"

我想你应该:

package="com.ssowens.groovebass"

Expansion file naming rules是:

[main|patch].<expansion-version>.<package-name>.obb