关闭

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

标签: android工程
468人阅读 评论(0) 收藏 举报
分类:
    问题描述:现有Android官网下载的一个activity-lifecycle的应用程序工程文件,不知道怎么直接打开,于是自己新建了一个叫做Activity_lifecycle的工程文件,并想将activity-lifecycle的源代码文件等内容放入到新建工程中,并实现与之相同的功能,这样做有点麻烦,但后面如果用到将已有部分代码插入时会很有借鉴意义。
    activity-lifecycle中包含有AndroidManifest.xmlbuild.xml文件,几个properties后缀和一个cfg后缀的文件,另外有三个文件夹:libs, res, src。觉得这其中的源文件主要包含在ressrc的文件中,于是先插入这两个文件夹中的layoutvalues.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都能正常调试运行了。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:241155次
    • 积分:3757
    • 等级:
    • 排名:第8541名
    • 原创:287篇
    • 转载:16篇
    • 译文:0篇
    • 评论:18条
    最新评论