Cómo realizar la depuración IDE a nivel de código fuente
Dado que AS se desarrolla en base a IntelliJ IDEA, este artículo también se aplica a IntelliJ IDEA
1. Modifique la configuración de memoria de Android Studio (en adelante, AS)
Dado que la importación de código fuente consumirá mucha memoria, primero debe modificar -Xms y -Xms en IDEA_HOME. /bin/studio64.vmoptions El valor de -Xmx (las máquinas x86 modifican studio.vmoptions). El documento utiliza 748 my puede modificarse.
2. Configure AS JDK y SDK
Agregue un JDK sin classpath al IDE para garantizar que se utilicen los archivos de la biblioteca en el código fuente
Y use como el SDK de Java en el SDK. Como se muestra en la siguiente figura
3. Genere el archivo de configuración (*.ipr) necesario para importar AS
① Compile el código fuente (para asegurarse de que se haya creado un archivo .java). generado, como R. JAVA; si se ha compilado, genere un archivo .java, como R.JAVAjava, si se ha compilado, no es necesario volver a compilar)
② Compruebe si; existe en el directorio out/host/linux-x86/framework/ idegen.jar
Si idegen.jar no existe, ejecute:
③Si se ha compilado, allí No es necesario compilarlo nuevamente. jar no existe, ejecute:
mmm development/tools/idegen/
La carpeta res.java se genera en el código fuente 5.0.1, lo que provoca un error. Se produce cuando se ejecuta idegen.jar. Se produce FileNotFoundException, que es el resultado de que el código en idegen no es lo suficientemente estricto.
Hay un parche para corregir este error al compartir. También puedes usar el idegen.jar que compartí directamente.
③Ejecutar
development/tools/idegen/idegen.sh
Espere resultados similares al siguiente:
Exclusión de lectura: 5 ms
Árbol recorrido: 44078ms
Esto generará dos archivos de configuración de IntelliJ IDEA (AS basado en IntelliJ IDEA Community Edition) en el directorio raíz del código fuente, a saber, android.ipr y android.iml.
Consejo:
AS importa el código lentamente. Se recomienda modificar android.iml para excluir el código no utilizado.
Puede imitar la sintaxis para filtrar carpetas .repo, por ejemplo:
lt;excludeFolder url="file://$MODULE_DIR$/.repo" /gt;
lt; excluirCarpeta url="archivo://$MODULE_DIR$/.repo" /gt;
lt; excluirCarpeta url="archivo://$MODULE_DIR$/abi" /gt;
lt; excluirFolder url="file://$MODULE_DIR$/art" /gt;
Esto omitirá las carpetas abi y art al importar. Cuanto más filtre, más rápido lo procesará AS.
④ Abra el código fuente en el directorio raíz de Android recién generado en AS. ipr
Si se produce una importación en AS
Se recomienda seguir la solución proporcionada (url:/display/IDEADEV/Inotify Watches Limit), el contenido específico es el siguiente:
4. Resuelva el problema del error de salto en el código fuente
①Establezca el SDK y JDK correctos para el proyecto actual
②Establezca la dependencia de "Módulos"
Primero, elimine todas las dependencias excepto las dos señaladas con "1" en la imagen de arriba (Nota: Elimínelas todas aquí solo por conveniencia. Si está utilizando .jar, simplemente agregue sus rutas.
Por ejemplo, 5.0.1 ContactsCommon usa geocoder-2.9.jar y libphonenumber-6.2.jar)
Haga clic en el "2" que apunta a " " en la imagen de arriba y luego seleccione "Frascos". Opción "o directorios", seleccione Marcos y luego Carpetas externas. Por ejemplo:
Es posible que se muestren otras versiones del código:
No importa, esto es solo un problema de visualización; al hacer clic en Aceptar se agregará la ruta del marco.
Si aún recibe el error de salto de código, siga los pasos anteriores y agregue la ruta del código correspondiente o el archivo jar en su pestaña de dependencias.
Código fuente V.DEBUG
Podemos agregar "Android Framework" al "Módulo" del proyecto que acabamos de importar para que AS lo trate como un proyecto de Android, haciéndolo Es más fácil para nosotros depurar el código.
Puedes agregar compatibilidad con Android Framework siguiendo "1" y "2" en la figura anterior.
Agregue un punto de interrupción en el código y luego seleccione "Ejecutar'->'Adjuntar depurador al proceso de Android" o haga clic directamente en el icono que se muestra a continuación
En la ventana emergente En el Elija el cuadro de diálogo Proceso, marque Mostrar todos los procesos, seleccione el proceso en el que desea depurar el código y haga clic en Aceptar. Seleccione el proceso donde desea que resida el código DEBUG y haga clic en Aceptar.
6. Otros
Las llamadas requieren nivel de API x en muchos lugares del código.... Este problema ocurre porque AS trata nuestro proyecto como un proyecto de aplicación de Android y minSdkVersion no está especificado en el código fuente.
Solo necesitamos agregar la declaración minSdkVersion en el directorio raíz del código fuente del archivo AndroidManifest.xml (compartir un AndroidManifest.xml).
O considere usar build.gradle para resolver el problema.