问题描述: 现有 Android 官网下载的一个 activity-lifecycle 的应用程序工程文件,不知道怎么直接打开,于是自己新建了一个叫做 Activity_lifecycle 的工程文件,并想将 activity-lifecycle 的源代码文件等内容放入到新建工程中,并实现与之相同的功能,这样做有点麻烦,但后面如果用到将已有部分代码插入时会很有借鉴意义。 activity-lifecycle 中包含有 AndroidManifest.xml build.xml 文件,几个 properties 后缀和一个 cfg 后缀的文件,另外有三个文件夹: libs, res, src 。觉得这其中的源文件主要包含在 res src 的文件中,于是先插入这两个文件夹中的 layout values .java 后缀等的源文件,最后再看下 AndroidManifest.xml 是否会自动更新 ,如果自动更新则不必自己做修改了。

插入res/layout中的几个xml文件:

右键新建工程的layout->import->XML->XML Catalog->Next,然后选中目前的Workspace Files文件,点击下面的Import Files…,浏览到layout中的文件,选定,在下面的列表框中选择要添加的.xml文件,再将Into folder:路径选择为当前工程的layout的路径,最后点击finish即完成.xml文件的导入了。

插入src中的.java文件:

与插入xml文件类似,右键工程的src下的包-> import->General->File System->Next


点击Browse…按钮选择需要添加的.java文件的目录,在下面的列表框中选择要添加的文件,然后选择Into folder的路径为当前工程的源文件存放地址,点击Finish即完成导入:


新建一个包:

插入源文件时,可能插入到自己的工程中时,一些包路径会有不同,此时可以在当前工程中新建包,以使插入的源文件可用。


在需要新建包的地方右键,然后选择New->Folder即可弹出上面的对话框,选择好Source folderName(包的名称)即可。

出现了问题:

接下来还需要将res/values中的.xml文件(strings.xml, colors.xml, dimensions.xml等)插入到新建工程中。与前面的插入.xml文件过程一样。

此时,工程仍有许多打红叉的地方,对比了一下新建工程与下载的应用程序工程的AndroidManifest.xml文件,两者是不一样的,新建工程的AndroidManifest.xml需要添加相应的activity等内容。这里直接利用前面插入.xml文件的方法将其替换掉。

问题出现了,替换掉AndroidManifest.xml文件后,工程中的R.java丢失不见了,出现了更多的红色叉。关于R.java文件丢失的问题,另见[苏湘]Android不生成R.java的问题.doc的描述。原因就是新建的工程与下载的源码属于不同的平台版本,从而导致了R.java的丢失。

如何将原有应用程序代码放入现有工程:

既然上面的新建工程再逐步插入代码的方式行不通,于是想直接将整个下载的源码工程插入workspace中。

ADT中选择菜单栏File->Import->Android->Existing Android Code Into Workspace->Next

然后在弹出的Import Projects对话框中浏览并选定要插入的工程文件夹,并勾选下面的Copy projects into workspace选项,这会将原来下载的源代码复制到新建的工程文件夹中。点击“Finish”完成导入。

但此时ADT工具的地下Console出现以下信息:

[2013-01-14 09:45:23 - ActivityA] Unable to resolve target 'android-14'

[2013-01-14 09:45:24 - ActivityA] Unable to resolve target 'android-14'

[2013-01-14 10:18:08 - ActivityA] Unable to resolve target 'android-14'

[2013-01-14 10:18:08 - ActivityA] Unable to resolve target 'android-14'

估计是工程的SDK平台版本设置不当所致。

ADT中右键点击工程名,选择Properties选项,选中左侧的Android项目,此时在右边显示Project Build Target,下面是下载安装的所有的AndroidSDK Platform版本,如Android1.5Android4.2等。这里选择的Project Build Target是指工程选择在ADT工具的哪个SDK平台下进行编译生成。

这里有几点关于ADTSDK平台、应用程序版本的问题需要进行说明:

ADT是指安装和配置的开发工具,向前兼容的,使用的最新版本的话是可以对之前所有版本开发的源码进行编译的,但以前版本的ADT工具很可能不能编译最新版本的工程文件。

SDK平台是Android操作系统不断更新的各个版本的SDK,也是向前兼容的,及初级版本有的功能高级版本肯定是有的,而且高级版本有许多初级版本不具备的功能,因此可能一些高级版本SDK开发出来的程序在低版本上是不能运行的。

比如,以前用Android2.0SDK开发的源代码,能在最新的支持Android4.2ADT中进行重新编译通过,得到的应用程序可以在Android2.0及以上版本的系统上运行,但一般不能再Android2.0及以下的版本上运行。

在将工程的Properties设置后,由于源代码是Android2.2的,所以启动一个2.2及以上的AVD都能正常调试运行了。

更多相关文章

  1. Android(安卓)multidex 使用 与 实现原理
  2. Cordova自定义插件实战
  3. Android(安卓)中Dialog点击空白处會消失问题
  4. Android(安卓)Studio中获取sha1证书指纹数据的方法
  5. Android学习笔记-保存文件(Saving Files)
  6. [转]Android(安卓)adb不是内部或外部命令 问题解决
  7. 如何查看Android里面其他应用的数据
  8. Android适配器Adapter的学习
  9. Android(安卓)HAL

随机推荐

  1. android SDK升级连接不上服务器解决方案
  2. android资源合集
  3. NFS挂载android文件系统
  4. Android点击2次返回按钮退出应用程序
  5. 2011.09.29(2)——— android 图片缩略图
  6. Android系统启动过程
  7. 编程回忆之Android回忆(Android的强制横屏
  8. Android四大组件之~~BroadcastReceiver
  9. Android开发资料[2012-12-16]
  10. Android退出程序的多种方法