导入com.android.internal.R无法解析

时间:2011-12-30 19:50:02

标签: android overlay gestures

您好我正在与Gestures合作,我需要导入但我得到错误

com.android.internal.R;

导入com.android.internal.R无法解析

请帮助我

4 个答案:

答案 0 :(得分:36)

你没有说明为什么你需要访问com.android.internal.R,但遗憾的是你根本无法导入它(“内部”是一个线索,它不是公共API的一部分)。谷歌没有透露这一点,因为它可能会发生变化。

可以通过调用Resources.getSystem()来获取内部资源。要获取特定资源标识符的值,您必须知道其名称,然后使用以下代码查找值:

Resources res = Resources.getSystem();
int id = res.getIdentifier("resource name", "resource type", "android");

请注意,您使用的任何名称都可能在Android的未来版本中消失。

答案 1 :(得分:5)

我有几点建议:

1)确保除R相关错误外没有任何其他错误。在Eclipse,Android Tools - >中右键单击项目文件夹。修复项目属性。

2)检查以确保您输入了正确的R.有时可以导入默认的Android.R。

答案 2 :(得分:4)

是的,你可以使用内部R和一些脏技巧(脏技巧= Java反射)。

只是一个例子:

Class clasz = Class.forName("com.android.internal.R$styleable")
Field field = clasz.getDeclaredField("TextAppearance");
field.setAccessible(true);
int[] textAppearanceStyleArr = (int[])field.get(null);

field = clasz.getDeclaredField("TextAppearance_textSize");
field.setAccessible(true);
int textSizeStyle = (Integer)field.get(null);

答案 3 :(得分:3)

首先,什么是手势? 你的gen文件夹中有一个名为com.android.internal的包吗?它包含R.java吗? 如果没有,请尝试Project->在Eclipse中清理。如果它仍然不起作用,您的XML布局文件可能会出错。