2011-02-08 8 views
10

Mi objetivo es duplicar el proyecto de ejemplo de NotePad de modo que si retoco con los archivos de origen para aprender a través de la experimentación, los archivos de muestra originales serán no afectados. El racional detrás de este objetivo se explica muy bien en las viñetas 1-2-3 en this post por @Neutrino.¿Cómo duplicar un proyecto de muestra de SDK en el espacio de trabajo?

Basado en @ post de neutrinos, que lleva a cabo los siguientes pasos:

Paso 1: Copiar código de ejemplo en una ubicación temporal (fuera del directorio de espacio de trabajo):

1. Close Eclipse. 
2. Copy the entire sample folder 
    **NotePad** from C:\android-sdk-windows\samples\android-7 
    to C:\Users\androideve\Documents\NotePad 

Paso 2. Importar de copia al área de trabajo:

1. Start Eclipse 
    2. File > New > Project > Android Project [Next] 
     > Create project from existing **source**: C:\Users\androideve\Documents\NotePad 
    3. Delete project from Package Explorer (without deleting its files from disk!) 
    4. File > Import... 
     > General > Existing Projects into Workspace [Next] 
     > Browse: C:\Users\androideve\Documents\NotePad 
     > Check "Copy projects into workspace" [Finish] 
    5. Delete entire folder C:\Users\androideve\Documents\NotePad from disk. 

Esto se traduce en la creación de proyectos pero viene con 21 errores sin ninguna pista en cuanto a lo que les causa (recuerda, yo soy un androide n ewbie y yo no escribió el programa Bloc de notas):

Description Resource Path Location Type 
Error generating final archive: java.io.FileNotFoundException: C:\sb\workspace\NotesList\bin\resources.ap_ does not exist NotesList  Unknown Android Packaging Problem 
error: Error: String types not allowed (at 'layout_height' with value 'match_parent'). note_editor.xml /NotesList/res/layout line 17 Android AAPT Problem 
error: Error: String types not allowed (at 'layout_width' with value 'match_parent'). note_editor.xml /NotesList/res/layout line 17 Android AAPT Problem 
error: Error: String types not allowed (at 'layout_width' with value 'match_parent'). noteslist_item.xml /NotesList/res/layout line 17 Android AAPT Problem 
R cannot be resolved to a variable NoteEditor.java /NotesList/src/com/example/android/notepad line 148 Java Problem 
R cannot be resolved to a variable NoteEditor.java /NotesList/src/com/example/android/notepad line 151 Java Problem 
R cannot be resolved to a variable NoteEditor.java /NotesList/src/com/example/android/notepad line 175 Java Problem 
R cannot be resolved to a variable NoteEditor.java /NotesList/src/com/example/android/notepad line 177 Java Problem 
R cannot be resolved to a variable NoteEditor.java /NotesList/src/com/example/android/notepad line 194 Java Problem 
R cannot be resolved to a variable NoteEditor.java /NotesList/src/com/example/android/notepad line 195 Java Problem 
R cannot be resolved to a variable NoteEditor.java /NotesList/src/com/example/android/notepad line 265 Java Problem 
R cannot be resolved to a variable NoteEditor.java /NotesList/src/com/example/android/notepad line 269 Java Problem 
R cannot be resolved to a variable NoteEditor.java /NotesList/src/com/example/android/notepad line 276 Java Problem 
R cannot be resolved to a variable NotesList.java /NotesList/src/com/example/android/notepad line 83 Java Problem 
R cannot be resolved to a variable NotesList.java /NotesList/src/com/example/android/notepad line 94 Java Problem 
R cannot be resolved to a variable NotesList.java /NotesList/src/com/example/android/notepad line 177 Java Problem 
R cannot be resolved to a variable NotesLiveFolder.java /NotesList/src/com/example/android/notepad line 48 Java Problem 
R cannot be resolved to a variable NotesLiveFolder.java /NotesList/src/com/example/android/notepad line 51 Java Problem 
R cannot be resolved to a variable TitleEditor.java /NotesList/src/com/example/android/notepad line 71 Java Problem 
R cannot be resolved to a variable TitleEditor.java /NotesList/src/com/example/android/notepad line 80 Java Problem 
R cannot be resolved to a variable TitleEditor.java /NotesList/src/com/example/android/notepad line 83 Java Problem 

¿Qué he hecho mal y lo que necesito para hacer la copia de esta muestra Bloc de notas generar y ejecutar?

Respuesta

11

OK, creo que estoy llegando (tenga en cuenta las diferencias sutiles entre los pasos originales y los siguientes):

Paso 1: Copiar código de ejemplo en una ubicación temporal (fuera del directorio de espacio de trabajo):

1. Close Eclipse. 
2. Copy the entire sample folder 
    **NotePad** from C:\android-sdk-windows\samples\android-8 
    to C:\Users\androideve\Documents\NotePad 

Paso 2.Importar de copia al área de trabajo:

1. Start Eclipse 
    2. File > New > Project > Android Project [Next] 
     > Create project from existing **source**: C:\Users\androideve\Documents\NotePad 
     > Build Target: **Uncheck** Android 1.5. **Check** Android 2.2. [Finish] 
    3. Delete project from Package Explorer (without deleting its files from disk!) 
    4. File > Import... 
     > General > Existing Projects into Workspace [Next] 
     > Browse: C:\Users\androideve\Documents\NotePad 
     > Check "Copy projects into workspace" [Finish] 
    5. Delete entire folder C:\Users\androideve\Documents\NotePad from disk. 

Ahora, el proyecto se crea como antes, pero en lugar de 21 errores, sólo tengo 1 advertencia:

Description Resource Path Location Type 
Attribute minSdkVersion (3) is lower than the project target API level (8) AndroidManifest.xml /NotesList line 1 Android ADT Problem 

También tengo dos mensajes rojas en la consola:

[2011-02-10 12:45:50 - com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper] Unable to read C:\android-sdk-windows\AndroidManifest.xml: java.io.FileNotFoundException: C:\android-sdk-windows\AndroidManifest.xml (The system cannot find the file specified) 
[2011-02-10 12:45:50 - com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper] Unable to read C:\android-sdk-windows\AndroidManifest.xml: java.io.FileNotFoundException: C:\android-sdk-windows\AndroidManifest.xml (The system cannot find the file specified) 

es verdad: no hay AndroidManifest.xml en C: \ android-sdk-windows, pero hay uno en el directorio NoteList. ¿Por qué se queja de esto? ¿Por qué está buscando en C: \ android-sdk-windows?

De todos modos, después de crear una configuración de inicio, el proyecto de ejemplo copiado literalmente se ejecutó en el emulador sin ningún problema (ahora puedo finalmente aprender a programar el lado).

En resumen, la fuente del problema fue que estaba usando la muestra de Android 7 (en lugar de Android 8) y que procedí con el objetivo de compilación 1.5 (en lugar de 2.2).

Todo está bien ahora. :)

2

Trate de hacer que sus declaraciones de importación son correctas:

R cannot be resolved - Android error

Además, ¿por qué cree que está mirando C:\sb\workspace\NotesList\bin\resources.ap_? No es allí donde está almacenado tu proyecto, ¿verdad?


podría sugerir tratando de hacer esto en su lugar:

  1. eliminar el proyecto de su espacio de trabajo, también lo borra del disco (o cambiar el nombre si lo desea mantenerlo para que no se conflicto con el proyecto que va a importar)
  2. En Eclipse, File > Import y elija la opción Existing Projects into Workspace
  3. elija Select root directory y vaya a la carpeta Samples hasta que encuentre el directorio raíz NodePad
  4. Haga clic Open o lo que sea la opción "OK" relevante es
  5. Marque la casilla Copy projects into workspace
  6. Haga clic Finish

Esto debe importar un buen carbono-copia de la demo API para su retoques, dejando el fuente original en el árbol de directorios libre de modificaciones

+0

¡Guau! No me di cuenta de que las herramientas de desarrollo de Android son tan inconsistentes (a veces Ctrl + Shift + O resuelve un problema, a veces creaba un problema). De todos modos, intenté ambos, eso no ayudó. En cuanto a su pregunta: Sí, C: \ sb \ workspace es donde se almacena mi proyecto: tenga en cuenta que está ** copiado ** de la muestra. Y +1 para el primer intento útil. –

+0

Acabo de descubrir que NotesList> res> layout no tiene ningún archivo main.xml. ¿Podría ser esta la fuente del problema? Si es así, ¿cómo podría ser esto? ¿No debería un ejemplo de proyecto (que viene con Android SDK) ser ejemplar? –

+0

@androideve No necesita un main.xml si nunca se llama en la actividad. Hay otros: node_editor.xml, noteslist_item.xml y title_editor.xml –

2

Haga clic derecho en su proyecto Eclipse, elija propiedades, vaya a Android y asegúrese de que esté seleccionado el SDK correcto.

1

más simple solución:

  1. "Nuevo";
  2. "Proyecto Android"
  3. inserte un nombre de proyecto temporal (no el final que desea);
  4. seleccione un "Objetivo de compilación" para el que haya descargado ejemplos;
  5. seleccione "Crear proyecto a partir de muestra existente" y elija la muestra de código que desee;
  6. haga clic en "Finalizar";
  7. haga clic derecho en el proyecto y seleccione "Copiar";
  8. haga clic derecho en un área vacía en el Explorador de proyectos y seleccione "Pegar";
  9. ingrese el nombre final que ha elegido para el proyecto;
  10. seleccione "Usar ubicación predeterminada" si desea que el proyecto esté en la ruta habitual dentro del área de trabajo.

Eso es todo, el proyecto y el código ahora están duplicados y funcionando en su área de trabajo.

Cuestiones relacionadas