Colección de citas famosas - Slogan de motivación - ¿Cómo solucionar los problemas de desarrollo de Android?

¿Cómo solucionar los problemas de desarrollo de Android?

R.java desaparece o se analiza de forma anormal

Columna de título personalizada

La diferencia entre los métodos SQLite isFirst e isBeforeFirst

eclipse elimina líneas vacías

La diferencia entre getX() y getRawX()

Problema de visualización centrada en ImagView

Java.util.ConcurrentModificationException activada sincronizada

Obtener Colores aleatorios

Eliminar la barra de título de la Actividad y mostrarla en pantalla completa

Cómo modificar el nombre y el icono de la aplicación

Acerca de los métodos de depuración

¿No se pudo leer la fila 0, columna -1 de CursorWindow? Asegúrese de que el cursor esté inicializado correctamente antes de acceder a los datos.

android.content.res.Resources.loadXmlResourceParser

android.content.res.Resources$NotFoundException

Método de definición del botón interactivo

La ejecución del programa en el hiperterminal informa un error: permiso denegado

Importe el proyecto desde svn. Hay signos de exclamación

Hay signos de exclamación al importar proyectos desde svn

El teclado virtual no aparece automáticamente cuando ingresa a la Actividad con EditText por primera vez. tiempo y no aparece hasta que vuelves a hacer clic en él

OnItemClickListener en la galería Diferencias con OnItemSelectedListener

La aplicación de exportación de firmas en Eclipse falla, firma manual

android.view.InflateException: línea de archivo XML binario #Resolución de excepción

Reemplazar activos Copie el paquete comprimido en la carpeta a la tarjeta SD (sin límite de tamaño)

Determine si tiene permisos de root

El método más simple del emulador raíz

La nueva versión de ADT indica que "Al ejecutar Android Lint" ha encontrado un problema al abrir eclipse

La nueva versión de ADT indica al abrir eclipse ?No se puede abrir libstdc .so.6..

No se puede actualizar ADT

1.R.java desaparece o se analiza de forma anormal

Ver archivos de recursos, imágenes, xml , etc. en res. Por ejemplo, los nombres de archivos de imágenes no pueden tener letras mayúsculas ni espacios.

Después de corregir el error, simplemente Project-gt;clean.

2. Personaliza la columna de título

Primero define un estilo en valores-gt;styles y luego configura android:theme.

Finalmente escriba en este orden en Actividad:

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);?

setContentView(R. layout.activity_main );

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_layout);

3 La diferencia entre los métodos SQLite isFirst y isBeforeFirst:

Mira el siguiente código

Cursor c = queryTheCursor(type);

if(c.moveToLast())

while (!c.isBeforeFirst ( )) {

String tmpContent = new String();

tmpContent = c.getString(c.getColumnIndex("content"));

contenidos. add(tmpContent);

c.moveToPrevious();

}

c.close() ?

Código La función es generar el contenido de la tabla en orden inverso. Si se usa isFirst () en la tercera fila, la primera fila no se puede generar. El método correcto es usar isBeforeFirst ().

4. ¿Eclipse elimina líneas vacías?

Para eliminar una determinada línea en eclipse, utilice la tecla de acceso directo Ctrl D. ¿Qué sucede si desea eliminar todas las líneas en blanco de un archivo?

Puedes utilizar los siguientes métodos:

1) ¿Abrir el editor de código fuente?

2) Utilizar la tecla de acceso directo Ctrl f?

3) Ingrese en el cuadro de entrada Buscar: ^\s*\n?

4) ¿El valor del cuadro de entrada Reemplazar con está vacío?

5) "Expresiones regulares " ¿seleccionado en Opciones?

6) Haga clic en el botón Reemplazar todo.

?

7)¡OK!

5. La diferencia entre getX() y getRawX()

getX() representa la x del widget en relación con su Coordenadas de la esquina superior izquierda

Y getRawX() representa el valor de la coordenada x relativa a la esquina superior izquierda de la pantalla (nota: la esquina superior izquierda de esta pantalla es la esquina superior izquierda de la pantalla del teléfono móvil, independientemente de si la actividad tiene una barra de título o es de pantalla completa), getY(), ¿es lo mismo que getRawY()?

Problema de visualización centrada en ImagView

La configuración de xml. son los siguientes:

lt;?xml version="1.0" encoding= "utf-8"?gt;

lt; LinearLayout xmlns: android="/apk/res/ android"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_gravity="center"

android: orientación="vertical" gt;

lt;ImageView

p>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@ id/myImageView"

android:layout_gravity="center"

android: scaleType="matrix"

android: src="@drawable/pic" gt;

lt;/ ImageViewgt;

lt;/LinearLayoutgt;

7.lanzamientos sincronizados java .util.ConcurrentModificationException

Si varios subprocesos acceden a una instancia de ArrayList al mismo tiempo y entre ellos al menos un subproceso modifica estructuralmente la lista, entonces debe permanecer sincronizado externamente.

Solución: cambiar ArrayList a CopyOnWriteArrayList durante la inicialización.

Principio:

No cuesta dinero mover una referencia de un objeto a otro en tiempo de CPU JAVA; puede considerarse como una operación atómica.

Si un objeto todavía tiene una referencia en JAVA, CG no lo reciclará. ?

CopyOnWriteArrayList se basa en las dos características anteriores. Cuando se actualiza la lista, copia directamente la lista original, realiza la operación de actualización en la nueva lista y luego mueve la referencia a la nueva una vez completada. . en la lista. La lista anterior seguirá siendo válida si todavía está en uso (como atravesar). De esta manera, el objeto que se está utilizando no se modificará (la lectura y la escritura ocurren en dos objetos respectivamente, y la operación de lectura no tiene que esperar a que se complete la operación de escritura, eliminando el uso de bloqueos y). acelerar la lectura.

8. Consigue colores aleatorios

No es necesario generar tres números aleatorios cada vez. Las dos declaraciones siguientes son suficientes:

Random myRandom=new Random. ();

int ranColor = 0xff000000 | mRandom.nextInt(0x00ffffff);

9. Eliminar la barra de título de la Actividad y mostrarla en pantalla completa

En el archivo de manifiesto Modifique el atributo Avtivity correspondiente.

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

10. Cómo modificar el nombre y el ícono de la aplicación

Modificar el ícono del programa, modifique el ícono i→→c_launcher.png en la carpeta dibujable, cambie el nombre del nuevo ícono y sobrescríbalo.

Si desea su propio nombre, puede modificar este nodo de AndroidManifest.xml, aplicación android: icon="@drawable/ic_launcher", no se requiere extensión de archivo.

Incluso si hace esto, aún puede haber algunos problemas durante la depuración de la máquina real. Por ejemplo, el ícono no se puede cambiar. En este momento, debe crear un nuevo proyecto con un nombre diferente. Eclipse y luego transfiere el código (un poco pequeño) ¡Problema ~_~!).

11. Acerca de los métodos de depuración

Si hay un error en el programa durante la depuración, generalmente verifica logcat para ver dónde ocurrió el error. Le preguntará en qué línea del programa se encuentra. es, y luego búscalo. Eso es todo.

Pero algunos errores no se pueden localizar, así que envíe el registro a txt y luego vaya a Google o Baidu.

12. ¿No se pudo leer la fila 0, columna -1 de CursorWindow? Asegúrese de que el cursor esté inicializado correctamente antes de acceder a los datos.

Error 1: el campo solicitado es en No existe en la tabla de la base de datos, generalmente porque las letras mayúsculas y minúsculas no están escritas correctamente;

Error 2: los campos de la tabla se cambian en medio de la programación, pero los campos reales no ha cambiado La solución es desinstalar la versión actual y luego instalarla y depurarla.

13.android.content.res.Resources.loadXmlResourceParser

La variable de forma int se pasa donde la clase de cadena se pasa como parámetro.

14.android.content.res.Resources$NotFoundException

Cuando se produce una excepción de este tipo, puede encontrar recursos relacionados en la clase de recurso R según el ID del recurso. Por ejemplo, 0x7f030000 corresponde al archivo de diseño city_item, lo que puede reducir el problema a un alcance menor. Para este tipo de problema en el que el recurso no se puede encontrar en tiempo de ejecución, pero el recurso existe, puede haber un problema durante la compilación y el empaquetado y el recurso no se agrega. Puede modificar el recurso y dejar que el compilador lo vuelva a compilar. ?

También puedes probar Project -gt; Limpiar el proyecto.

15. Cómo definir botones interactivos:

Primero prepare imágenes de los diferentes estados del botón

Luego defina el xml del selector en el archivo res/drawable.

lt;?xml version="1.0" encoding="utf-8"?gt;

lt;selector xmlns:android="/apk/res/android"gt ;

lt;!--Define la imagen cuando se hace clic en el botón--gt;

lt; item android: drawable="@drawable/addbtn_focus" android: state_pressed="true " /gt;

lt; !--Define la imagen predeterminada del botón--gt;

lt; item android: drawable="@drawable/addbtn_lost"/gt;

lt;/selectorgt;

Finalmente establece el atributo de fondo del Botón

lt;Button

android: id="@ id /btnAdd"

android: layout_width="wrap_content"

android: layout_height="wrap_content"

android: background="@drawable/addbtn_selector"/gt ;

p>

16. La ejecución del programa en HyperTerminal informa un error - Permiso denegado

Consulte /questions/16814/terminal-permission-denied-need-more- info-on-error-message

La razón principal es que no se puede ejecutar en la tarjeta SD. Simplemente vaya directamente al directorio data/ para crear el archivo y luego ejecútelo.

17. Hay un signo de exclamación al importar el proyecto desde svn

Mensaje de error Archivar para la biblioteca requerida: 'libs/armeabi/libvudroid.so' en el proyecto 'DocumentViewer' no se puede leído o no es un archivo ZIP válido

El principal problema es la ruta

Solución: Simplemente elimine la referencia al paquete externo (biblioteca) en la ruta de compilación del proyecto.

18. Al ingresar a la Actividad con EditText por primera vez, el teclado virtual no aparecerá automáticamente. Aparecerá solo después de hacer clic nuevamente.

Solo es útil el método de configuración del manifiesto. Agregue la configuración de actividad:

[html]?view Plain?copy

android: windowSoftInputMode=". ajustarPan| stateHidden"

19. La diferencia entre OnItemClickListener y OnItemSelectedListener en Galería

OnItemClickListener: solo hacer clic en Ver en Galería activará el evento. Para ser precisos, cuando levantas tu mano después de hacer clic Cuando se activa, el deslizamiento no se activará.

OnItemSelectedListener: Se activará cuando se seleccione la Vista en la Galería. Se activará una vez cuando la Galería se muestre por primera vez. Cuando se seleccione la primera vista, se activará al deslizar. y haciendo clic.

20. Extrae el componente rgb del color del sistema hexadecimal.

Se implementa principalmente mediante operaciones de bits.

[java]?ver plano?copiar

público?clase?Main?{?

público?estático?void?main(String[]?args )?{?

//?TODO?Método?generado automáticamente?stub?

int?INK_COLOR?=?0xFF11ef23;?

flotador?r ?=?getColorR(TINK_COLOR?);?

flotar?g?=?getColorG(TINK_COLOR?);?

flotar?b?=?getColorB(TINK_COLOR?);?

System.out.print(r "?" g "?" b);?

}?

public?static?float?getColorR(int ?c)?

{?

int?R?=?(c?amp;?0x00FF0000?)gt;gt;16;?

regresar ?(flotante)?(R/255.0);?

}?

public?static?float?getColorG(int?c)?

{?

int?G?=(c?amp;?0x0000FF00?)gt;gt;8;?

retorno?(flotante)?(G/255.0);?

p>

}?

público?estático?float?getColorB(int?c)?

{?

int? B?=?c ?amp;?0x000000FF;?

¿regresar?(flotar)?(B/255.0);?

}?

}?

21. El apk de exportación firmado en Eclipse falla y se firma manualmente.

No hay ningún problema con el proyecto y la depuración, pero eclipse fallará al empaquetar. La solución es empaquetar manualmente.

Primero vaya a la carpeta bin en el directorio del proyecto para buscar el archivo apk, descomprímalo y elimine la carpeta META-INF, vuelva a empaquetarlo en un paquete comprimido y cambie el sufijo a .apk

En primer lugar, es una firma (suponiendo que haya generado un almacén de claves en el directorio raíz):

Ingrese el directorio de instalación de Java/carpeta bin:

[plain]? ver simple?copia

./jarsigner?-verbose?-sigalg?SHA1withRSA?-digestalg?SHA1?-keystore?android.keystore?~/Output.apk?android ?

Luego optimización, ingrese Ejecutarlo en la carpeta de herramientas del SDK.

[plain]?view Plain?copy

./zipalign?-v?4?~/Output.apk?Output_realase.apk ?

Directorio actual Descargue Output_realase.apk para obtener el apk empaquetado y firmado.

22.android.view.InflateException: Línea de archivo XML binario #Resolución de excepción

Al crear una vista personalizada, encontré android.view.InflateException: Línea de archivo XML binario #Excepción, después de repetidas investigaciones

se descubrió que se debía a la falta de un constructor.

[java]?ver plano?copiar

público?MyView(Context?context, AttributeSet?paramAttributeSet)?

{?

super(context, paramAttributeSet);?

} ?

Completa este constructor y la excepción desaparecerá.

23. Coloca la carpeta de activos en Copiar. paquete comprimido a tarjeta SD (sin límite de tamaño)

[java]?view Plain?copy

public?static?void?copyAssetToSdcard(Context?c,?String?assetFile ,?String ?destino)?throws?IOException?{

InputStream?in?=?c.getAssets().open(assetFile);

Archivo?outFile?=?new ?File( destino);?

OutputStream?out;

Log.v("Intentar",?"Intentar?hacer frente.");?

intentar?{ ?

if?(!(new?File(destino)).exists())?{?

Log.v("Probar",?"No? existe.. ");?

out?=?new?FileOutputStream(outFile);?

copyFile(in,?out);?

in .close( );?

in?=?null;?

out.flush();?

out.close();?

p>

out?=?null;?

}?

}?catch?(¿Excepción?e)?{?

Registro .v ("Error",?"Error?en?if.

");?

}?

}

¿público?static?void?copyFile(InputStream?in,?OutputStream?out)?throws?IOException? {?

Log.v("Coping",?"copyFiling.");?

byte[]?buffer?=?new?byte[1024];?

byte[]?buffer?=?new?byte[1024];?

p>

int?read;?

mientras?((leer ?=?in.read(buffer))?!=?-1)?{?

Log .v("read:",?""? ?read);?

out.write(buffer,?0,?read);?

}?

}?

24. Determina si tienes permisos de root

[java]?ver plano?copiar

público?estático?sincronizado?booleano? getRootAhth()?

{?

Proceso ?proceso?=?null;?

DataOutputStream?os?=?null;?

¿intentar?

{?

proceso ?=?Runtime.getRuntime().exec("su");?

os?=?new ?DataOutputStream(process.getOutputStream());?

os.writeBytes ("salir\n");?

os.flush();?

int?exitValue?=?process.waitFor();?

si?(exitValue?==?0)?

{?

regresar verdadero;?

}?else?

{?

return?false;?

}?

}?catch?(¿Excepción?e)?

{?

Log.d("***?DEBUG?***",?"¿Error? inesperado? - ?Aquí?¿qué?sé:?"?

?e.getMessage());?

return?false;?

} ?¿finalmente?

{?

¿intentar?

{?

si?(os?!=?null)?

{?

os.close();?

}?

proceso.destroy();?

}?catch?(¿Excepción?e)?

{?

e.printStackTrace();?

}?

}?

}?

25. método más simple de emulador raíz

Iniciar un emulador, iniciar-ejecutar-ingresar cmd, abrir dos, ingresar en secuencia

adb shell

montar -o remontar, rw -t yaffs2 /dev/block/mtdblock3 /system

cd /system/b

en

cat sh gt; su

chmod 4755 su

su

para obtener permisos de root

26 La nueva versión de ADT indica "Ejecutar Android Lint" ha encontrado un problema al abrir eclipse

Ingrese a Eclipse, Ventana gt; Comprobación de errores de Android Lint, elimine "Al guardar archivos, verifique". "Errores" gancho.

27. La nueva versión de ADT indica al abrir eclipse: "no se puede abrir libstdc .so.6.."

Es necesario instalar una biblioteca de 32 bits.

sudo apt-get install lib32stdc 6

sudo apt-get install lib32z1

28. No se puede actualizar ADT

Quiero hacerlo. Instale el complemento ADT en Eclipse con el archivo Zip, pero cuando hago clic en el botón Siguiente en la primera página de instalación, el progreso se retrasa durante mucho tiempo. Espero alrededor de 3 horas para la instalación, pero ahora la mitad de la instalación de ADT: (

En la ventana de instalación, encima de la barra de progreso, escribe: no se puede realizar la operación. Calculando soluciones alternativas, puede tardar un poco: 7/15.

¿Por qué la instalación de ADT requiere mucho tiempo? ¿No es un problema o la instalación? ¿Tiene algún problema?

Perdón por mi pobre inglés y gracias por la ayuda

Dado que el IDE oficial para el desarrollo de Android recomienda principalmente Android Studio, hay mucho menos soporte para eclipse y ADT- El paquete también se ha descontinuado, por lo que ocurrió el problema anterior.

La solución es descargar la última versión de Eclipse y la última versión del complemento ADT desde el sitio web oficial de Eclipse. >