Skip to content

Commit e42497c

Browse files
committed
update
1 parent 3bcd24e commit e42497c

File tree

4 files changed

+7
-4
lines changed

4 files changed

+7
-4
lines changed

PluginCore/src/com/plugin/core/PluginCreator.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public static DexClassLoader createPluginClassLoader(String absolutePluginApkPat
4949
* @return
5050
*/
5151
public static Resources createPluginResource(Application application, String absolutePluginApkPath,
52-
boolean isStandalone) {
52+
boolean isStandalone, String[] dependencies) {
5353
try {
5454

5555
// 插件运行时可能会通过getActivityInfo等
@@ -60,7 +60,7 @@ public static Resources createPluginResource(Application application, String abs
6060
isStandalone = false;
6161

6262
String[] assetPaths = buildAssetPath(isStandalone, application.getApplicationInfo().sourceDir,
63-
absolutePluginApkPath);
63+
absolutePluginApkPath, dependencies);
6464
AssetManager assetMgr = AssetManager.class.newInstance();
6565
RefInvoker.invokeMethod(assetMgr, AssetManager.class.getName(), "addAssetPaths",
6666
new Class[] { String[].class }, new Object[] { assetPaths });
@@ -76,7 +76,7 @@ public static Resources createPluginResource(Application application, String abs
7676
return null;
7777
}
7878

79-
private static String[] buildAssetPath(boolean isStandalone, String app, String plugin) {
79+
private static String[] buildAssetPath(boolean isStandalone, String app, String plugin, String[] dependencies) {
8080
String[] assetPaths = new String[isStandalone ? 1 : 2];
8181

8282
// if (!isStandalone) {
@@ -95,6 +95,9 @@ private static String[] buildAssetPath(boolean isStandalone, String app, String
9595
// LogUtil.d("create Plugin Resource from: ", assetPaths[0]);
9696
// }
9797

98+
99+
//若需支持插件间资源依赖,这里需要遍历添加dependencies
100+
98101
if (!isStandalone) {
99102
// 不可更改顺序否则不能兼容4.x,如华为P7-Android4.4.2
100103
assetPaths[0] = plugin;

PluginCore/src/com/plugin/core/PluginLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ static void ensurePluginInited(PluginDescriptor pluginDescriptor) {
401401
LogUtil.d("是否为独立插件", pluginDescriptor.isStandalone());
402402

403403
Resources pluginRes = PluginCreator.createPluginResource(sApplication, pluginDescriptor.getInstalledPath(),
404-
pluginDescriptor.isStandalone());
404+
pluginDescriptor.isStandalone(), pluginDescriptor.getDependencies());
405405

406406
pluginClassLoader = PluginCreator.createPluginClassLoader(pluginDescriptor.getInstalledPath(),
407407
pluginDescriptor.isStandalone(), pluginDescriptor.getDependencies());
0 Bytes
Binary file not shown.
4 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)