我的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()原因NullPointerException为mAPKExtensionFile是null.
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 ×1