Импорт com.android.internal.R не может быть разрешен

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

com.android.internal.R;

Импорт com.android.internal.R не может быть разрешен

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

Ответ 1

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

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

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

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

Ответ 2

У меня есть несколько советов:

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

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

Ответ 3

Да, вы можете использовать внутренний 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);

Ответ 4

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