我正在这里编写一个支持插件的Android应用程序。 我有2个应用程序(2个apk),一个是主程序,另一个是插件。
现在我希望插件在主程序的Activity中构建它自己的接口。但我发现2个应用程序中的R.java具有相同的值:
插件中的R.java:
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class id {
public static final int button1=0x7f050000;
public static final int button2=0x7f050001;
}
public static final class layout {
public static final int widget=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040000;
public static final int button1text=0x7f040001;
public static final int button2text=0x7f040002;
}
}
主程序的R.java:
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class id {
public static final int mainWidgetLayout=0x7f050000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
}
正如您所看到的,这两个R.java中有很多相同的值,这会造成混乱。在插件中,如果我想通过R.java中定义的资源构造接口,它可能会引用主程序资源中的相同值。
那么,如何处理呢?是否有可能使2个应用程序中的2 R.java具有不同的值? 非常感谢。任何建议都表示赞赏。
答案 0 :(得分:-1)
我自己并没有这样做,但following thread可能会引起人们的兴趣。 特别是那个说
的部分每个资源标识符由32位组成,共8个顶部位 该 资源所属的包。平台资源为0x01 和0x7F是应用程序资源。想法是使用其余的 扩展包的253个值。
因此,您可以使用aapt -x生成不同的资源标识符(无需参数即可启动aapt以获取选项列表)。