Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
129 views
in Technique[技术] by (71.8m points)

android - How to duplicate an SDK-sample project into workspace?

My goal is to duplicate the NotePad sample project such that if I tinker with the source files in order to learn through experimentation, the original sample files will not be affected. The rational behind this goal is explained very well in bullets 1-2-3 in this post by @Neutrino.

Based on @Neutrino's post, I performed the following steps:

Step 1: Copy sample code to a temporary location (outside of the workspace directory):

 1. Close Eclipse.
 2. Copy the entire sample folder
    **NotePad** from C:android-sdk-windowssamplesandroid-7
    to C:UsersandroideveDocumentsNotePad

Step 2. Import from copy to workspace:

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

This results in the project creation but it comes with 21 errors without any clue as to what causes them (remember, I am an Android newbie and I didn't write the NotePad program):

Description Resource    Path    Location    Type
Error generating final archive: java.io.FileNotFoundException: C:sbworkspaceNotesListin
esources.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

What did I do wrong and what do I need to make the copy of this NotePad sample build and run?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

OK, I think I am getting there (note the subtle differences between the original steps and the following ones):

Step 1: Copy sample code to a temporary location (outside of the workspace directory):

 1. Close Eclipse.
 2. Copy the entire sample folder
    **NotePad** from C:android-sdk-windowssamplesandroid-8
    to C:UsersandroideveDocumentsNotePad

Step 2. Import from copy to workspace:

   1. Start Eclipse
   2. File > New > Project > Android Project [Next]
      > Create project from existing **source**: C:UsersandroideveDocumentsNotePad
      > 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:UsersandroideveDocumentsNotePad
        > Check "Copy projects into workspace" [Finish]
   5. Delete entire folder C:UsersandroideveDocumentsNotePad from disk.

Now, the project is created as before but instead of 21 errors, I have only 1 warning:

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

I also have two red messages on the Console:

[2011-02-10 12:45:50 - com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper] Unable to read C:android-sdk-windowsAndroidManifest.xml: java.io.FileNotFoundException: C:android-sdk-windowsAndroidManifest.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-windowsAndroidManifest.xml: java.io.FileNotFoundException: C:android-sdk-windowsAndroidManifest.xml (The system cannot find the file specified)

It's true: There is no AndroidManifest.xml in C:android-sdk-windows, but there is one in the NoteList directory. Why is it complaining about this? Why is it looking in C:android-sdk-windows?

Anyway, after creating a launch configuration, the copied-verbatim sample project proceeded to run on the emulator without any problems (now I can finally proceed to learning the programming side of it).

In summary, the source of the problem was that I was using the Android 7 sample (instead of Android 8) and that I proceeded with build target 1.5 (instead of 2.2).

All is well now. :)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...