如何将 SDK 示例项目复制到工作区?

2022-01-16 00:00:00 android eclipse-plugin eclipse

我的目标是复制 NotePad 示例项目,这样如果我修改源文件以便通过实验学习,原始示例文件将不会受到影响.这篇文章来自@Neutrino.

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.

根据@Neutrino 的帖子,我执行了以下步骤:

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

第 1 步:将示例代码复制到临时位置(工作区目录之外):

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

步骤 2. 从副本导入工作区:

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.

这会导致项目创建,但它带有 21 个错误,但没有任何线索说明它们的原因(请记住,我是 Android 新手,我没有编写记事本程序):

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:sbworkspaceNotesListinesources.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?

推荐答案

好的,我想我到了(注意原始步骤和以下步骤之间的细微差别):

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

第 1 步:将示例代码复制到临时位置(工作区目录之外):

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

步骤 2. 从副本导入工作区:

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.

现在,项目像以前一样创建,但我只有 1 个警告,而不是 21 个错误:

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)

确实:C:android-sdk-windows 下没有AndroidManifest.xml,但是NoteList 目录下有一个.为什么抱怨这个?为什么它在 C:android-sdk-windows 中查找?

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).

总之,问题的根源在于我使用的是 Android 7 示例(而不是 Android 8)并且我继续使用构建目标 1.5(而不是 2.2).

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).

现在一切都很好.:)

相关文章