Comments (8)
感谢反馈。插件是在单独进程的,这可能是你没看到log的原因。我晚点查这个问题。
from shadow.
感谢反馈。插件是在单独进程的,这可能是你没看到log的原因。我晚点查这个问题。
from shadow.
如果你测试使用的是Android 9.0或更高版本系统,应该是下面的原因。否则就是其他我复现不了的问题了。
日志看不到是因为Crash后进程立刻重启了,我们可以在启动插件进程后专门根据pid过滤Log,就能看到插件进程最后几行Log如下:
2019-07-18 19:45:46.882 7267-7267/com.tencent.shadow.sample.host:plugin W/ple.host:plugi: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker;-><init>(Landroid/content/Context;I)V (light greylist, reflection)
2019-07-18 19:45:46.884 7267-7267/com.tencent.shadow.sample.host:plugin W/System.err: StrictMode VmPolicy violation with POLICY_DEATH; shutting down.
2019-07-18 19:45:46.884 7267-7267/com.tencent.shadow.sample.host:plugin I/Process: Sending signal. PID: 7267 SIG: 9
所以可以看到,这是因为Sample默认打开了严格检查模式,而WebView的实现调用了灰名单方法。所以,应该是Android系统中自己还有一些实现没有避免使用私有API呢。可以去掉com.tencent.shadow.sample.host.HostApplication#detectNonSdkApiUsageOnAndroidP
调用,来继续验证WebView的兼容性。
from shadow.
我考虑咱们是不是这样改一下?
在宿主程序启动界面加上一个默认为关闭的滑动开关。仅当Android 9.0以上版本显式。开关控制是否调用com.tencent.shadow.sample.host.HostApplication#detectNonSdkApiUsageOnAndroidP
方法。
虽然不复杂,但是能不能请你帮Shadow写一下这个功能呢?主要目的在于参与共同建设Shadow的代码。
from shadow.
嗯 我也发现了如果开启严格模式会导致我手机报错,另外对AppCompat包中使用控件,在宿主的Application中设置AppCompat的theme就可以不报错了。
from shadow.
非常感谢!我本地原项目的Shadow化已经基本完成,等测试稳定以后我再提交部分补充。
from shadow.
另外的问题最好另外提个issue跟进。最好把代码也传上来。
from shadow.
好的,我也是在原项目的改造过程中,逐步摸索、排错。如果发现不是因为我使用问题导致的错误我会提交issue并补充代码的。
from shadow.
Related Issues (20)
- 启动插件时,会报上下文NullPointerException HOT 2
- 报错,找不到DelegateProvider
- 宿主更新插件,要重启宿主后插件才生效 HOT 1
- 怎么加载本地存储中的插件,而不是加载assets中的插件 HOT 1
- UnsatisfiedLinkError,so文件映射失败
- 关于插件和宿主通信的问题
- android 4.4.2 MultiDex 每次运行都要删除旧的dex
- 可以更新一下最新代码的maven版本吗? HOT 1
- 自荐 BlackShadow,Shadow的二次封装项目,开袋即食版。
- 插件集成 nfc 功能问题 HOT 3
- throw new RuntimeException("packageArchiveInfo is NullPointException") HOT 2
- 如何通过反射调用插件中的方法并获取返回值 HOT 2
- ShadowNativeActivityDelegate.getPackageManager getMPluginActivity NullPointerException HOT 1
- NativiActivity java.lang.RuntimeException: java.lang.IllegalArgumentException: Unable to find native library main using classloade
- 宿主和插件之间的资源共享 HOT 4
- 存在转换后被调用方法未实现的问题 getOnBackInvokedDispatcher HOT 2
- gradle8适配 HOT 6
- com.tencent.shadow.plugin 这个插件最大支持的 AGP 和 Gradle 版本分别是多少?还有 compileSdk 版本? HOT 10
- 插件中使用 WorkManager 时启动插件出错 HOT 1
- 线上偶现Rejecting re-init on previously-failed class xxx,NoClassDefFoundError Class not found using the boot class loader; no stack trace available HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from shadow.