相关疑难解决方法(0)

如果扩展文件版本与apk版本代码不同,则使用URI(使用Google Zip扩展库)访问APK扩展文件会导致崩溃

我的apk版本代码是版本3.使用它我使用的主扩展文件加载了apk版本代码1(文件名类似于main.1.ex.etc.eg.obb).扩展文件在设备上下载正常.

扩展文件有媒体文件,因此我使用APEZProviderGoogle Zip扩展库来播放它VideoView.

调用VideoView.start()会导致Nullpointer异常.

到目前为止我发现的内容:APEZProvider.initIfNecessary()返回主扩展文件版本为3而不是1.因此,尝试打开ZipResourceFile(mAPKExtensionFile)返回null.APEZProvider.openAssetFile()原因NullPointerExceptionmAPKExtensionFilenull.

APEZProviderGoogle Zip扩展库中类的相关代码:

  private boolean initIfNecessary() {
    if ( !mInit ) {
        Context ctx = getContext();
        PackageManager pm = ctx.getPackageManager();
        ProviderInfo pi = pm.resolveContentProvider(getAuthority(), PackageManager.GET_META_DATA);
        PackageInfo packInfo;
        try {
            packInfo = pm.getPackageInfo(ctx.getPackageName(), 0);
        } catch (NameNotFoundException e1) {
            e1.printStackTrace();
            return false;
        }
        int patchFileVersion;
        int mainFileVersion;
        int appVersionCode = packInfo.versionCode;
        if ( null != pi.metaData ) { …
Run Code Online (Sandbox Code Playgroud)

android

3
推荐指数
1
解决办法
6471
查看次数

标签 统计

android ×1