您的位置:首页 > 移动开发 > Android开发

[Android--Tool]Android如何将他人的代码放入新建的工程中

2015-07-11 00:22 120 查看
问题描述:现有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 folder和Name(包的名称)即可。
出现了问题:

接下来还需要将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,下面是下载安装的所有的Android的SDK Platform版本,如Android1.5至Android4.2等。这里选择的Project
Build Target是指工程选择在ADT工具的哪个SDK平台下进行编译生成。
这里有几点关于ADT、SDK平台、应用程序版本的问题需要进行说明:
ADT是指安装和配置的开发工具,向前兼容的,使用的最新版本的话是可以对之前所有版本开发的源码进行编译的,但以前版本的ADT工具很可能不能编译最新版本的工程文件。
SDK平台是Android操作系统不断更新的各个版本的SDK,也是向前兼容的,及初级版本有的功能高级版本肯定是有的,而且高级版本有许多初级版本不具备的功能,因此可能一些高级版本SDK开发出来的程序在低版本上是不能运行的。
比如,以前用Android2.0的SDK开发的源代码,能在最新的支持Android4.2的ADT中进行重新编译通过,得到的应用程序可以在Android2.0及以上版本的系统上运行,但一般不能再Android2.0及以下的版本上运行。

在将工程的Properties设置后,由于源代码是Android2.2的,所以启动一个2.2及以上的AVD都能正常调试运行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: