VirtualAPK icon indicating copy to clipboard operation
VirtualAPK copied to clipboard

按照正常流程走的,解析不正常

Open fuzhijun52058237 opened this issue 7 years ago • 10 comments

W/System.err: android.content.pm.PackageParser$PackageParserException: Failed to parse /storage/emulated/0/Test.apk 07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.pm.PackageParser.parseApkLite(PackageParser.java:1415) 07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.pm.PackageParser.parseMonolithicPackageLite(PackageParser.java:728) 07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.pm.PackageParser.parseMonolithicPackage(PackageParser.java:919) 07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.pm.PackageParser.parsePackage(PackageParser.java:834) 07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.pm.PackageParser.parsePackage(PackageParser.java:827) 07-06 20:29:43.306 1080-1080/? W/System.err: at com.didi.virtualapk.a.e.a(PackageParserCompat.java:44) 07-06 20:29:43.306 1080-1080/? W/System.err: at com.didi.virtualapk.a.b.a(PackageParserCompat.java:32) 07-06 20:29:43.306 1080-1080/? W/System.err: at com.didi.virtualapk.internal.c.(LoadedPlugin.java:150) 07-06 20:29:43.306 1080-1080/? W/System.err: at com.didi.virtualapk.internal.c.a(LoadedPlugin.java:78) 07-06 20:29:43.306 1080-1080/? W/System.err: at com.didi.virtualapk.b.a(PluginManager.java:202) 07-06 20:29:43.306 1080-1080/? W/System.err: at com.didi.virtualapk.MainActivity.a(MainActivity.java:77) 07-06 20:29:43.306 1080-1080/? W/System.err: at com.didi.virtualapk.MainActivity.onCreate(MainActivity.java:38) 07-06 20:29:43.306 1080-1080/? W/System.err: at android.app.Activity.performCreate(Activity.java:6910) 07-06 20:29:43.306 1080-1080/? W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123) 07-06 20:29:43.306 1080-1080/? W/System.err: at com.didi.virtualapk.internal.VAInstrumentation.callActivityOnCreate(VAInstrumentation.java:141) 07-06 20:29:43.306 1080-1080/? W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2746) 07-06 20:29:43.306 1080-1080/? W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2864) 07-06 20:29:43.306 1080-1080/? W/System.err: at android.app.ActivityThread.-wrap12(ActivityThread.java) 07-06 20:29:43.306 1080-1080/? W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567) 07-06 20:29:43.306 1080-1080/? W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102) 07-06 20:29:43.306 1080-1080/? W/System.err: at android.os.Looper.loop(Looper.java:156) 07-06 20:29:43.306 1080-1080/? W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6524) 07-06 20:29:43.306 1080-1080/? W/System.err: at java.lang.reflect.Method.invoke(Native Method) 07-06 20:29:43.306 1080-1080/? W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941) 07-06 20:29:43.306 1080-1080/? W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831) 07-06 20:29:43.306 1080-1080/? W/System.err: Caused by: java.io.FileNotFoundException: AndroidManifest.xml 07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.res.AssetManager.openXmlAssetNative(Native Method) 07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java:862) 07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.res.AssetManager.openXmlResourceParser(AssetManager.java:830) 07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.pm.PackageParser.parseApkLite(PackageParser.java:1391) 07-06 20:29:43.306 1080-1080/? W/System.err: ... 24 more

fuzhijun52058237 avatar Jul 06 '17 12:07 fuzhijun52058237

测试手机为华为P9

fuzhijun52058237 avatar Jul 06 '17 12:07 fuzhijun52058237

@fuzhijun52058237 请帮忙核对下,插件apk是否有效,检测插件apk中是否有AndroidManifest.xml文件。

Caused by: java.io.FileNotFoundException: AndroidManifest.xml

singwhatiwanna avatar Jul 07 '17 09:07 singwhatiwanna

a3098191-6fa2-40fe-8739-dcf2982abc41

我这边看到是存在的

fuzhijun52058237 avatar Jul 09 '17 14:07 fuzhijun52058237

@singwhatiwanna

fuzhijun52058237 avatar Jul 09 '17 14:07 fuzhijun52058237

这怎么解决的, 华为荣耀9也是这个问题

CeAlong avatar Jan 06 '18 07:01 CeAlong

有人解决吗?我也遇到了,荣耀8机子

xinnian25 avatar Jan 28 '18 08:01 xinnian25

请提供下完整的log日志,范围从app启动至报错,log级别V,所有进程。 华为机型开启V级别log,请参考 http://blog.csdn.net/tenfyguo/article/details/46694729

superqiaopu avatar Apr 04 '18 08:04 superqiaopu

华为荣耀8,android8.0系统遇到同样的问题,log如下: Failed to parse /storage/emulated/0/pluginradio_release.apk java.io.FileNotFoundException: AndroidManifest.xml at android.content.res.AssetManager.openXmlAssetNative(Native Method) at android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java:862) at android.content.res.AssetManager.openXmlResourceParser(AssetManager.java:830) at android.content.pm.PackageParser.parseApkLite(PackageParser.java:1771) at android.content.pm.PackageParser.parseMonolithicPackageLite(PackageParser.java:913) ..........................................后面log就不在打印了................................. 然后定位到最终错误的位置调用的方法如下: /** * {@hide} * Retrieve a non-asset as a compiled XML file. Not for use by * applications. * * @param cookie Identifier of the package to be opened. * @param fileName Name of the asset to retrieve. */ /*package*/ final XmlBlock openXmlBlockAsset(int cookie, String fileName) throws IOException { synchronized (this) { if (!mOpen) { throw new RuntimeException("Assetmanager has been closed"); } long xmlBlock = openXmlAssetNative(cookie, fileName); if (xmlBlock != 0) { XmlBlock res = new XmlBlock(this, xmlBlock); incRefsLocked(res.hashCode()); return res; } } throw new FileNotFoundException("Asset XML file: " + fileName); } 这是android 8.0的framework的assetMananger的源码,调用的openXmlAssetNative方法返回值不是0,就跑出这样的错误,不知楼主可否hook掉native层的返回值解决这个问题@singwhatiwanna@CeAlong

minwenping avatar Aug 29 '18 10:08 minwenping

已解决,插件打包要配置签名

darrenjh avatar Jan 22 '19 07:01 darrenjh

@darrenjh 你的打包命令怎么写的,我这边也有同样问题,可以发一下吗?

MrZhangSan avatar Apr 24 '19 07:04 MrZhangSan