Tencent / Shadow

零反射全动态Android插件框架
BSD 3-Clause "New" or "Revised" License
7.46k stars 1.3k forks source link

使用PackagePluginDebug打包时 PluginManifest 文件 报错。报错信息是找不到资源文件。这些资源是来自插件中的lib 包下的aar文件内部。 #1191

Closed senda58 closed 7 months ago

senda58 commented 1 year ago

使用PackagePluginDebug打包时 PluginManifest 文件 报错。报错信息是找不到资源文件。这些资源是来自插件中的lib 包下的aar文件内部。报错信息如下:

image

资源报错的位置如下:

image

插件使用的是uniapp框架,结构目录如下:

image

资源文件在这下面:

image

完整的PluginManifest中的代码如下:

    package com.tencent.shadow.core.manifest_parser;

    import java.lang.String;

    public class PluginManifest implements com.tencent.shadow.core.runtime.PluginManifest {
      private static final String applicationPackageName = "com.example.app";

      private static final String applicationClassName = "io.dcloud.application.DCloudApplication";

      private static final String appComponentFactory = "androidx.core.app.CoreComponentFactory";

      private static final int applicationTheme = com.example.uniapp_kz.R.style.Theme_Uniappkz;

      private static final com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo[] activities = new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo[] {
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.PandoraEntry", com.example.uniapp_kz.R.style.NotificationText_Dark ,android.content.pm.ActivityInfo.CONFIG_ORIENTATION|android.content.pm.ActivityInfo.CONFIG_KEYBOARD_HIDDEN|android.content.pm.ActivityInfo.CONFIG_KEYBOARD|android.content.pm.ActivityInfo.CONFIG_NAVIGATION ,android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.PandoraEntryActivity", com.example.uniapp_kz.R.style.DCloudTheme ,android.content.pm.ActivityInfo.CONFIG_ORIENTATION|android.content.pm.ActivityInfo.CONFIG_KEYBOARD_HIDDEN|android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE|android.content.pm.ActivityInfo.CONFIG_MCC|android.content.pm.ActivityInfo.CONFIG_MNC|android.content.pm.ActivityInfo.CONFIG_FONT_SCALE|android.content.pm.ActivityInfo.CONFIG_KEYBOARD|android.content.pm.ActivityInfo.CONFIG_SMALLEST_SCREEN_SIZE|android.content.pm.ActivityInfo.CONFIG_SCREEN_LAYOUT|android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE|android.content.pm.ActivityInfo.CONFIG_UI_MODE ,android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.feature.nativeObj.photoview.PhotoActivity", com.example.uniapp_kz.R.style.  ,android.content.pm.ActivityInfo.CONFIG_ORIENTATION|android.content.pm.ActivityInfo.CONFIG_KEYBOARD_HIDDEN ,0),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.WebAppActivity", com.example.uniapp_kz.R.style.DCloudTheme ,android.content.pm.ActivityInfo.CONFIG_ORIENTATION|android.content.pm.ActivityInfo.CONFIG_KEYBOARD|android.content.pm.ActivityInfo.CONFIG_KEYBOARD_HIDDEN|android.content.pm.ActivityInfo.CONFIG_SMALLEST_SCREEN_SIZE|android.content.pm.ActivityInfo.CONFIG_SCREEN_LAYOUT|android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE|android.content.pm.ActivityInfo.CONFIG_MCC|android.content.pm.ActivityInfo.CONFIG_MNC|android.content.pm.ActivityInfo.CONFIG_FONT_SCALE|android.content.pm.ActivityInfo.CONFIG_NAVIGATION ,android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.ProcessMediator", android.R.style.Theme_Translucent_NoTitleBar ,0 ,0),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.WebviewActivity", com.example.uniapp_kz.R.style.ThemeNoTitleBar ,0 ,android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("com.dmcbig.mediapicker.PickerActivity", com.example.uniapp_kz.R.style.DeviceDefault_Light ,android.content.pm.ActivityInfo.CONFIG_ORIENTATION|android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE ,android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("com.dmcbig.mediapicker.PreviewActivity", com.example.uniapp_kz.R.style.DeviceDefault_Light ,android.content.pm.ActivityInfo.CONFIG_ORIENTATION|android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE ,android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.feature.gallery.imageedit.IMGEditActivity", com.example.uniapp_kz.R.style.ImageEditTheme ,android.content.pm.ActivityInfo.CONFIG_ORIENTATION|android.content.pm.ActivityInfo.CONFIG_KEYBOARD_HIDDEN|android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE ,android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.sdk.activity.WebViewActivity", com.example.uniapp_kz.R.style.ThemeNoTitleBar ,0 ,android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.debug.PullDebugActivity", com.example.uniapp_kz.R.style.PullActivityTheme ,android.content.pm.ActivityInfo.CONFIG_ORIENTATION|android.content.pm.ActivityInfo.CONFIG_KEYBOARD_HIDDEN|android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE|android.content.pm.ActivityInfo.CONFIG_MCC|android.content.pm.ActivityInfo.CONFIG_MNC|android.content.pm.ActivityInfo.CONFIG_FONT_SCALE ,0)
      };

      private static final com.tencent.shadow.core.runtime.PluginManifest.ServiceInfo[] services = new com.tencent.shadow.core.runtime.PluginManifest.ServiceInfo[] {
      new com.tencent.shadow.core.runtime.PluginManifest.ServiceInfo("io.dcloud.sdk.base.service.DownloadService"),
      new com.tencent.shadow.core.runtime.PluginManifest.ServiceInfo("io.dcloud.debug.WebSocketService"),
      new com.tencent.shadow.core.runtime.PluginManifest.ServiceInfo("io.dcloud.debug.PullService")
      };

      private static final com.tencent.shadow.core.runtime.PluginManifest.ReceiverInfo[] receivers = new com.tencent.shadow.core.runtime.PluginManifest.ReceiverInfo[] {
      new com.tencent.shadow.core.runtime.PluginManifest.ReceiverInfo("com.taobao.weex.WXGlobalEventReceiver", null)
      };

      private static final com.tencent.shadow.core.runtime.PluginManifest.ProviderInfo[] providers = new com.tencent.shadow.core.runtime.PluginManifest.ProviderInfo[] {
      new com.tencent.shadow.core.runtime.PluginManifest.ProviderInfo("io.dcloud.common.util.DCloud_FileProvider", "com.example.app.dc.fileprovider",true),
      new com.tencent.shadow.core.runtime.PluginManifest.ProviderInfo("io.dcloud.sdk.base.service.provider.DCloudAdFileProvider", "com.example.app.dc.fileprovider",true)
      };

      public final String getApplicationPackageName() {
        return applicationPackageName;
      }

      public final String getApplicationClassName() {
        return applicationClassName;
      }

      public final String getAppComponentFactory() {
        return appComponentFactory;
      }

      public final int getApplicationTheme() {
        return applicationTheme;
      }

      public final com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo[] getActivities() {
        return activities;
      }

      public final com.tencent.shadow.core.runtime.PluginManifest.ServiceInfo[] getServices() {
        return services;
      }

      public final com.tencent.shadow.core.runtime.PluginManifest.ReceiverInfo[] getReceivers() {
        return receivers;
      }

      public final com.tencent.shadow.core.runtime.PluginManifest.ProviderInfo[] getProviders() {
        return providers;
      }
    }

@shifujun 大佬能不能帮忙看看,谢谢。

long216 commented 1 year ago

同样的问题,怎么解决的呢楼主

qxf1991415 commented 1 month ago

同样的问题,怎么解决的呢楼主

大佬这个问题怎么解决的呢?

qxf1991415 commented 1 month ago

使用PackagePluginDebug打包时 PluginManifest 文件 报错。报错信息是找不到资源文件。这些资源是来自插件中的lib 包下的aar文件内部。报错信息如下: image

资源报错的位置如下: image

插件使用的是uniapp框架,结构目录如下: image 资源文件在这下面: image

完整的PluginManifest中的代码如下:

    package com.tencent.shadow.core.manifest_parser;

    import java.lang.String;

    public class PluginManifest implements com.tencent.shadow.core.runtime.PluginManifest {
      private static final String applicationPackageName = "com.example.app";

      private static final String applicationClassName = "io.dcloud.application.DCloudApplication";

      private static final String appComponentFactory = "androidx.core.app.CoreComponentFactory";

      private static final int applicationTheme = com.example.uniapp_kz.R.style.Theme_Uniappkz;

      private static final com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo[] activities = new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo[] {
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.PandoraEntry", com.example.uniapp_kz.R.style.NotificationText_Dark ,android.content.pm.ActivityInfo.CONFIG_ORIENTATION|android.content.pm.ActivityInfo.CONFIG_KEYBOARD_HIDDEN|android.content.pm.ActivityInfo.CONFIG_KEYBOARD|android.content.pm.ActivityInfo.CONFIG_NAVIGATION ,android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.PandoraEntryActivity", com.example.uniapp_kz.R.style.DCloudTheme ,android.content.pm.ActivityInfo.CONFIG_ORIENTATION|android.content.pm.ActivityInfo.CONFIG_KEYBOARD_HIDDEN|android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE|android.content.pm.ActivityInfo.CONFIG_MCC|android.content.pm.ActivityInfo.CONFIG_MNC|android.content.pm.ActivityInfo.CONFIG_FONT_SCALE|android.content.pm.ActivityInfo.CONFIG_KEYBOARD|android.content.pm.ActivityInfo.CONFIG_SMALLEST_SCREEN_SIZE|android.content.pm.ActivityInfo.CONFIG_SCREEN_LAYOUT|android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE|android.content.pm.ActivityInfo.CONFIG_UI_MODE ,android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.feature.nativeObj.photoview.PhotoActivity", com.example.uniapp_kz.R.style.  ,android.content.pm.ActivityInfo.CONFIG_ORIENTATION|android.content.pm.ActivityInfo.CONFIG_KEYBOARD_HIDDEN ,0),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.WebAppActivity", com.example.uniapp_kz.R.style.DCloudTheme ,android.content.pm.ActivityInfo.CONFIG_ORIENTATION|android.content.pm.ActivityInfo.CONFIG_KEYBOARD|android.content.pm.ActivityInfo.CONFIG_KEYBOARD_HIDDEN|android.content.pm.ActivityInfo.CONFIG_SMALLEST_SCREEN_SIZE|android.content.pm.ActivityInfo.CONFIG_SCREEN_LAYOUT|android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE|android.content.pm.ActivityInfo.CONFIG_MCC|android.content.pm.ActivityInfo.CONFIG_MNC|android.content.pm.ActivityInfo.CONFIG_FONT_SCALE|android.content.pm.ActivityInfo.CONFIG_NAVIGATION ,android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.ProcessMediator", android.R.style.Theme_Translucent_NoTitleBar ,0 ,0),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.WebviewActivity", com.example.uniapp_kz.R.style.ThemeNoTitleBar ,0 ,android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("com.dmcbig.mediapicker.PickerActivity", com.example.uniapp_kz.R.style.DeviceDefault_Light ,android.content.pm.ActivityInfo.CONFIG_ORIENTATION|android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE ,android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("com.dmcbig.mediapicker.PreviewActivity", com.example.uniapp_kz.R.style.DeviceDefault_Light ,android.content.pm.ActivityInfo.CONFIG_ORIENTATION|android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE ,android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.feature.gallery.imageedit.IMGEditActivity", com.example.uniapp_kz.R.style.ImageEditTheme ,android.content.pm.ActivityInfo.CONFIG_ORIENTATION|android.content.pm.ActivityInfo.CONFIG_KEYBOARD_HIDDEN|android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE ,android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.sdk.activity.WebViewActivity", com.example.uniapp_kz.R.style.ThemeNoTitleBar ,0 ,android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN),
      new com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo("io.dcloud.debug.PullDebugActivity", com.example.uniapp_kz.R.style.PullActivityTheme ,android.content.pm.ActivityInfo.CONFIG_ORIENTATION|android.content.pm.ActivityInfo.CONFIG_KEYBOARD_HIDDEN|android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE|android.content.pm.ActivityInfo.CONFIG_MCC|android.content.pm.ActivityInfo.CONFIG_MNC|android.content.pm.ActivityInfo.CONFIG_FONT_SCALE ,0)
      };

      private static final com.tencent.shadow.core.runtime.PluginManifest.ServiceInfo[] services = new com.tencent.shadow.core.runtime.PluginManifest.ServiceInfo[] {
      new com.tencent.shadow.core.runtime.PluginManifest.ServiceInfo("io.dcloud.sdk.base.service.DownloadService"),
      new com.tencent.shadow.core.runtime.PluginManifest.ServiceInfo("io.dcloud.debug.WebSocketService"),
      new com.tencent.shadow.core.runtime.PluginManifest.ServiceInfo("io.dcloud.debug.PullService")
      };

      private static final com.tencent.shadow.core.runtime.PluginManifest.ReceiverInfo[] receivers = new com.tencent.shadow.core.runtime.PluginManifest.ReceiverInfo[] {
      new com.tencent.shadow.core.runtime.PluginManifest.ReceiverInfo("com.taobao.weex.WXGlobalEventReceiver", null)
      };

      private static final com.tencent.shadow.core.runtime.PluginManifest.ProviderInfo[] providers = new com.tencent.shadow.core.runtime.PluginManifest.ProviderInfo[] {
      new com.tencent.shadow.core.runtime.PluginManifest.ProviderInfo("io.dcloud.common.util.DCloud_FileProvider", "com.example.app.dc.fileprovider",true),
      new com.tencent.shadow.core.runtime.PluginManifest.ProviderInfo("io.dcloud.sdk.base.service.provider.DCloudAdFileProvider", "com.example.app.dc.fileprovider",true)
      };

      public final String getApplicationPackageName() {
        return applicationPackageName;
      }

      public final String getApplicationClassName() {
        return applicationClassName;
      }

      public final String getAppComponentFactory() {
        return appComponentFactory;
      }

      public final int getApplicationTheme() {
        return applicationTheme;
      }

      public final com.tencent.shadow.core.runtime.PluginManifest.ActivityInfo[] getActivities() {
        return activities;
      }

      public final com.tencent.shadow.core.runtime.PluginManifest.ServiceInfo[] getServices() {
        return services;
      }

      public final com.tencent.shadow.core.runtime.PluginManifest.ReceiverInfo[] getReceivers() {
        return receivers;
      }

      public final com.tencent.shadow.core.runtime.PluginManifest.ProviderInfo[] getProviders() {
        return providers;
      }
    }

@shifujun 大佬能不能帮忙看看,谢谢。

大佬这个问题怎么解决的呢