Импорт com.android.internal.R не может быть разрешен - PullRequest
14 голосов
/ 30 декабря 2011

Привет, я работаю с Жестами, и мне нужно импортировать, но я получаю ошибку

com.android.internal.R;

Не удается разрешить импорт com.android.internal.R

пожалуйста, помогите мне, пожалуйста

Ответы [ 4 ]

36 голосов
/ 30 декабря 2011

Вы не говорите, зачем вам нужен доступ к com.android.internal.R, но печальный факт заключается в том, что вы просто не можете импортировать его («внутренний» является подсказкой того, что он не является частью общедоступного API). Google не раскрывает это, потому что оно может быть изменено.

Можно попасть на внутренние ресурсы, позвонив по номеру Resources.getSystem(). Чтобы получить значение определенного идентификатора ресурса, вы должны знать его имя, а затем использовать код, подобный следующему, чтобы найти значение:

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

Имейте в виду, что любое имя, которое вы используете, может исчезнуть в будущих версиях Android.

5 голосов
/ 31 декабря 2011

У меня есть пара предложений:

1) Убедитесь, что у вас нет других ошибок, кроме ошибок, связанных с R. Щелкните правой кнопкой мыши папку вашего проекта в Eclipse, Инструменты Android -> Исправить свойства проекта.

2) Проверьте, правильно ли импортирован R. Иногда можно импортировать Android.R по умолчанию.

4 голосов
/ 13 ноября 2014

Да, вы можете использовать внутренний 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 голосов
/ 30 декабря 2011

Прежде всего, что такое жесты?У вас есть пакет с именем com.android.internal в папке gen?Есть ли в нем R.java?Если нет, попробуйте Project-> Clean в Eclipse.Если это по-прежнему не работает, возможно, в файлах макета XML возникла ошибка.

...