private void set(String name) {
   LogUtil.d("attach " + name);
   Object obj = RefInvoker.getFieldObject(this, Activity.class.getName(), name);
   if (obj != null) {
     RefInvoker.setFieldObject(activity, Activity.class.getName(), name, obj);
   }
 }
  /**
   * for eclipse & ant with public.xml
   *
   * <p>unused
   *
   * @param pluginDescriptor
   * @param res
   * @return
   */
  private static boolean checkPluginPublicXml(PluginDescriptor pluginDescriptor, Resources res) {

    // "plugin_layout_1"资源id时由public.xml配置的
    // 如果没有检测到这个资源,说明编译时没有引入public.xml,
    // 这里直接抛个异常出去。
    // 不同的系统版本获取id的方式不同,
    // 三星4.x等系统适用
    int publicStub =
        res.getIdentifier("plugin_layout_1", "layout", pluginDescriptor.getPackageName());
    if (publicStub == 0) {
      // 小米5.x等系统适用
      publicStub = res.getIdentifier("plugin_layout_1", "layout", sApplication.getPackageName());
    }
    if (publicStub == 0) {
      try {
        // 如果以上两种方式都检测失败,最后尝试通过反射检测
        Class layoutClass =
            ((ClassLoader) pluginDescriptor.getPluginClassLoader())
                .loadClass(pluginDescriptor.getPackageName() + ".R$layout");
        Integer layouId = (Integer) RefInvoker.getFieldObject(null, layoutClass, "plugin_layout_1");
        if (layouId != null) {
          publicStub = layouId;
        }
      } catch (ClassNotFoundException e) {
        e.printStackTrace();
      }
    }

    if (publicStub == 0) {
      throw new IllegalStateException(
          "\n插件工程没有使用public.xml给资源id分组!!!\n"
              + "插件工程没有使用public.xml给资源id分组!!!\n"
              + "插件工程没有使用public.xml给资源id分组!!!\n"
              + "重要的事情讲三遍!!!");
    }
    return true;
  }