SheepYoung
SheepYoung
@smile3670 这个我也加了, 只解决了启动问题, 好像还有其他兼容性问题, 估计华为不单单改了一个方法
另外我还发现一些其他的error: E/SharedPreferencesImpl: Couldn't create directory for SharedPreferences file /data/user/0/com.owncloud.android/shared_prefs/oc_flag_file.xml E/SQLiteLog: (14) os_unix.c:31322: (2) open(/data/user/0/com.owncloud.android/databases/filelist) - /SQLiteDatabase: Failed to open database '/data/user/0/com.owncloud.android/databases/filelist'. 我到shell里面查看: root@M2E:/data/user/0 # ls -l com.own* com.own*: No such...
对比其他手机(Nexus 6P 6.0.1): root@angler:/data/data/com.microvideo.mivi/Plugin/com.owncloud.android/data/com.owncloud.android # ls databases files shared_prefs
StaticProcessList.onCreate: PackageManager pm = mHostContext.getPackageManager(); List activities = pm.queryIntentActivities(intent, PackageManager.GET_META_DATA); 有时候在调用 pm.queryIntentActivities的时候,报了异常: android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died
经过测试分析,怀疑这个问题跟两个因素有关: 1.instant run 2.androidManifest.xml application 节点上加metadata(我们app接入了阿里百川的hotfix,需要添加metadata,刚开始,我怀疑与hotfix的hook冲突,后台我尝试将接入hotfix的代码去掉了, 依赖也去掉了,只留下metadata,结果发现还是不行,我直接注释掉metadata,一切正常) 附上hotfix接入指南:http://baichuan.taobao.com/docs/doc.htm?spm=a3c0d.7629140.0.0.QAJGSr&treeId=234&articleId=106531&docType=1
进一步分析,通过svn提交update to version 一个个关键提交测试, 发现接入了阿里的hotfix之后,开始出现这个问题,应该是metadata太长了(这里有一个metadata字段是ras key,单单字符串就1.9K个字符),导致远程packageManager 调用超过了1M,这个可能就是压死骆驼的最后一把稻草了,这个是根本的原因!因此我现在的解决方案是,将DroidPlugin的manifest 原来又9个进程的坑,我现在删掉了5个,暂时解决了该问题。 前面说到的, pm.queryIntentActivities(intent, PackageManager.GET_META_DATA); 有拿到0的情况,估计是机器的兼容性问题,我现在这样修改了之后,所有的机器都OK了。 重现方案很简单,就是在demo中作死的添加 metadata节点,value 的size大一点,加个上百个,然后这个就会出现: `IPluginManagerImpl: mActivityManagerService.onCreatejava.lang.RuntimeException: Package manager has died at android.app.ApplicationPackageManager.queryIntentActivitiesAsUser(ApplicationPackageManager.java:657) at android.app.ApplicationPackageManager.queryIntentActivities(ApplicationPackageManager.java:643) at com.morgoo.droidplugin.am.StaticProcessList.onCreate(StaticProcessList.java:108) at com.morgoo.droidplugin.am.MyActivityManagerService.onCreate(MyActivityManagerService.java:74) at...