2011-12-30 16 views
14

Hola estoy trabajando con gestos y necesito para importar, pero estoy consiguiendo el errorcom.android.internal.R importación no se puede resolver

com.android.internal.R; 

El com.android.internal.R de importación no puede ser resuelto

amablemente me ayude, por favor

+0

¿Cómo apuntalar el error arriba? ¿Cambió algo en la configuración del proyecto o agregó nuevos archivos manualmente? En caso afirmativo, intente limpiar el proyecto y compilarlo de nuevo. – Ahmed

Respuesta

3

En primer lugar, lo que es Gestos? ¿Tiene un paquete llamado com.android.internal en su carpeta gen? ¿Contiene R.java? De lo contrario, pruebe Proyecto-> Limpiar en Eclipse. Si aún no funciona, es posible que tenga un error en los archivos de diseño XML.

36

No dice por qué necesita acceder a com.android.internal.R, pero la triste realidad es que simplemente no puede importarlo (el "interno" es una pista de que no es parte de la API pública). Google no expone esto porque está sujeto a cambios.

Es posible acceder a los recursos internos llamando al Resources.getSystem(). Para obtener el valor de un identificador de recurso en particular, usted tiene que saber su nombre y luego usar un código como el siguiente para encontrar el valor:

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

Tenga en cuenta que cualquier nombre que se utiliza podría desaparecer en futuras versiones de Android .

+0

¡Gracias por su respuesta! ¿Cómo puedo obtener el ID de recurso de este artículo? '' ' ' '' – nAkhmedov

+0

@nAkhmedov - Su pregunta no está clara. Lo que has mostrado es una definición de recurso 'id', que puedes referenciar como' R.id.switch_widget' en el código. ¿Hay algo más que tengas en mente? –

5

Tengo un par de sugerencias:

1) Asegúrese de que usted no tiene cualquier otro error que no sean los errores relacionados con R-. Haga clic con el botón derecho en la carpeta de su proyecto en Eclipse, Herramientas de Android -> Corregir propiedades del proyecto.

2) Compruebe para asegurarse de que tiene la R correcta importada. A veces, el Android.R predeterminado se puede importar.

4

Sí, puede usar la R interna con algún truco sucio (truco sucio = reflexión de Java).

Sólo un ejemplo:

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); 
+0

¡El acceso a las API internas a través de la reflexión no es compatible y puede que no funcione en todos los dispositivos o en el futuro! –

Cuestiones relacionadas