Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

宿主无法使用插件包名的方式startActivityForResult调用插件Activity #344

Open
guihongke opened this issue Sep 7, 2017 · 1 comment

Comments

@guihongke
Copy link

问题详细描述 Detailed description of the problem

当使用startActivityForResult调用插件的Activity时,调试时,断点到了PluginLibraryInternalProxy.startActivityForResult(Activity activity, Intent intent, int requestCode, Bundle options),发现其中调用的方法getPluginName(activity, intent),在这里有问题:
/**
* 获取插件名称
*/
private static String getPluginName(Activity activity, Intent intent) {
String plugin = "";
if (intent.getComponent() != null) {
plugin = intent.getComponent().getPackageName();
}
这个如果写的是插件包名,传递的参数activity.getClassLoader()必将返回的plugin值是"main"
// 如果 plugin 是包名,则说明启动的是本插件。
if (TextUtils.isEmpty(plugin) || plugin.contains(".")) {
plugin = RePlugin.fetchPluginNameByClassLoader(activity.getClassLoader());
}
// 否则是其它插件
return plugin;
}

复现问题步骤 Steps to reproduce the problem

demo中, (刻意以“Alias(别名)”来打开)
Intent intent = new Intent();
intent.setComponent(new ComponentName("demo1", "com.qihoo360.replugin.sample.demo1.activity.for_result.ForResultActivity"));
RePlugin.startActivityForResult(MainActivity.this, intent, REQUEST_CODE_DEMO1, null);
改成
RePlugin.startActivityForResult(MainActivity.this, RePlugin.createIntent("com.qihoo360.replugin.sample.demo1", "com.qihoo360.replugin.sample.demo1.MainActivity"));
后无法正常调用

其它重要信息 Other important information

replugin-host-lib/gradle Version:2.1.7
rePlugin-plugin-lib/gradle Version:2.2.0

Android API Version:android 6.0,android 4.4
Android 手机型号&ROM(Phone model & ROM): 荣耀6p,oppo r8207

Logcat上下文 Logcat context

PACM: bindActivity: may be invalid plugin name or load plugin failed: plugin=null

@Playhi
Copy link

Playhi commented Nov 5, 2017

我也遇到了。

我感觉
if (TextUtils.isEmpty(plugin) || plugin.contains("."))
这里的
|| plugin.contains(".")
似乎多余了

这个Issue为什么无人问津(迷)

楼主解决了吗?
————————————————
replugin-host-lib/gradle Version:2.2.1
rePlugin-plugin-lib/gradle Version:2.2.1
————————————————
好想@一下还明显活跃的大佬 @cundong 。对不起啊,打扰一下。

Playhi added a commit to Playhi/RePlugin that referenced this issue Nov 5, 2017
修复 Qihoo360#344
宿主无法使用插件包名的方式startActivityForResult调用插件Activity
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants