如果问题标题有点神秘,我很抱歉。我简直无法想出一个更好的。
我有一个项目,我想在AndroidManifest中玩一下包名。请不要问为什么我这样做或为什么我不是简单地使用build.gradle的applicationId。
问题是,为了不必在修改包名时不断纠正R.java的导入,我为R.java创建了一个如下所示的代理类:
import static com.package.main.R.*;
public class RProxy {
public static final class R{
public static anim anim;
public static attr attr;
public static bool bool;
public static color color;
public static drawable drawable;
public static dimen dimen;
public static id id;
public static integer integer;
public static layout layout;
public static menu menu;
public static plurals plurals;
public static raw raw;
public static string string;
public static style style;
public static styleable styleable;
}
}
我现在只需将每个类中的R import更改为RProxy,并将R的每次使用更改为RProxy.R。我现在只需要在RProxy中更改一次R import。 整个过程都在编译和运行。
现在,我的问题是:
Static member com.package.main.R.id.firstId accessed via instance reference.
我理解为什么我会得到它们,但我不知道如何进行代理其他方式。我怎么能摆脱这些?请注意我对获得答案的主要兴趣主要是教育目的(好古老的好奇心),但这并不意味着我不会高兴地欣赏任何答案!