如何向Eclipse中xcode 导入工程Android工程

用Eclipse 来导入Android 工程 总结_Linux编程_Linux公社-Linux系统门户网站
你好,游客
用Eclipse 来导入Android 工程 总结
来源:Linux社区&
作者:transformer_han
一.&& new&
缺点:需要新建一个project 名字。
NEW一个android project,create project from existing source
二.&& import
file -& import -& Existing project into worksapce -& select root directory& 选择copy projects into workspace
三.& 总结下导入的错误:
Eclipse导入Android工程加载错误可能原因,基本上有一下4种:
① ADK版本:---API Level对应关系(注意高版本不一定是兼容低版本的)&Android 2.3.4---10&Android 2.3.1---9===Gingerbread&Android 2.2---8===Froyo&Android 2.1---7===Eclair&Android 2.0.1---6===Eclair&Android 2.0---5===Eclair&Android 1.6---4===Donut&Android 1.5---3===Cupcak&Android 1.1---2 &Android 1.0---1
=======&& 1. target=android-5改为8 甚至更高.&&& 2. 项目右键打开项目属性,在左侧选择Android,在右侧选择具体的android版本。选择好后,再项目右键,在Android Tools下选择Fix Project Properties 3. 如果没有default properties, 自己建下,然后target=android-10
② JDK版本:&1.5只支持继承Class的子类用@overwrite覆盖方法&1.6支持实现接口的子类用@overwrite&
========&window --&preferences --&java --&compliance--&compiler 在右侧,选择为1.6或其他的,点击apply,点击ok.(1.6向下兼容)
③ 添加额外的库支持
首先要加入android.jar这个包,右键工程&Buildpath,
&&& java buildpath,选择libraries
&&& 在右边的按钮中点击“AddLibrary”
&&& 选择“Userlibrary”,点击“下一步”
&&& 点击“Userlibrarys”按钮
&&& 在出现的界面中点击“New..”按钮
&&& 在弹出的界面中随便起一个名字,点击“确定”
&&& 点击“Addjars”按钮选择第三方jar包,点击“确定”完成操作。
④ 工具本身问题ADT、JDK、Eclipse
相关资讯 & & &
& (03/23/:55)
& (02/17/:44)
& (02/17/:53)
& (02/17/:45)
& (02/17/:52)
& (02/17/:45)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款从Eclipse到AndroidStudio(五)迁移一个eclipse工程到AndroidS... - 简书
从Eclipse到AndroidStudio(五)迁移一个eclipse工程到AndroidStudio有哪些坑
本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发。我们还是以AndroidStudio 2.1.1为例来讲。经过前几节的讲述,我们已经对AndroidStudio以及Gradle构建有了基本的认识,于是,我决定把公司的项目从eclipse迁移到AndroidStudio,正式开始我的AndroidStudio之旅,可谁知事情根本没有我想的那么简单,这期间遇到了N多坑,我想这些坑可能大家也有可能遇到,于是就决定写出来,跟大家一起交流。首先,我们来看一下把一个eclipse工程迁移到AndroidStudio有几种方法:方法1:直接导入一个eclipse工程;方法2:在eclipse中利用ADT为工程生成一个Gradle文件,AndroidStudio导入这个gradle工程;方法3:在AndroidStudio中新建一个工程,把eclipse工程的代码、资源一点点拷过来;一、采用哪种方法先说结论:我采用了方法3,如果你对方法1和方法2的效果不感兴趣,可以跳过这一部分。方法1的好处是简单,AndroidStudio的早期版本只能用方法2,现在的新版可以支持方法1,直接导入一个eclipse工程,我开始时也是试这种方法的,确实简单,导进来不需要做任何设置居然就能运行,那么问题是什么呢?问题是编译运行一次那叫一个慢呀,比eclipse还慢N倍,而且异常消耗电脑资源,我们Macbook Pro配置不算低,买来一年多风扇从来没响过,以至于我以为电脑根本没有风扇,这下是听到风扇响了,响声那叫一个大,说明这种构建项目的方式极其耗内存耗CPU,并且由于没有gradle文件,Gradle的所有特性全部用不上,我都怀疑这种编译方式用的就是ant,根本没用到gradle。综上所述,方法1既没有eclipse快,也没有AndroidStudio的好处,看来这种方法不可取。再来看方法2,方法2是Google官方推荐的方式,操作步骤是:先在eclipse中的工程上点鼠标右键,在弹出的菜单中选择Export...,然后在弹出的窗口中选择Android标签下的Generate Gradle build files,如下图所示:
eclipse中为工程生成build.gradle文件
然后按提示操作就可以在工程目录下生成一个build.gradle文件,之后我们就可以用AndroidStudio导入这个build.gradle文件了,导入的过程中会连同这个工程一齐导入,之后,就会看到导入后的工程了,如图所示:
从eclipse导入的项目
看到了吧,整个工程还是保持eclipse中的目录结构。右边是eclipse自动生成的build.gradle文件的内容,跟代码无关。并且只有一个build.gradle文件,没有分全局的gradle和模块的gradle,使用了很旧的Gradle版本,并且使用已经不建议的android插件,之所以工程目录没有使用AndroidStudio默认格式,而可以保持eclipse目录结构,都是因为gradle文件中的那一部分sourceSets下的配置,sourceSets的配置可以允许我们改变工程的目录组织结构,而不需要必须使用AndroidStudio的默认结构,而且build.gradle构建一直不成功。。。也是醉了。由于存在这么多的疑问,我担心会给将来留坑,并且目录结构都不是AndroidStudio默认,我决定:放弃这种方法,采用方法3:新建一个AndroidStudio工程,把代码和资源一点一点拷过去,使用“纯粹”的AndroidStudio开发方式。二、采用方法3把工程迁移到AndroidStudio这种方法的过程也没什么好讲的,就是把java代码和资源文件复制粘贴到新工程的目录下就OK了,先来看一下效果,下图是我迁移完的效果:
方法3迁移后的效果图
怎么样,是不是清爽了许多,目录结构完全是AndroidStudio的格式,首先一个注意的问题就是公司以前的项目是没有用到v7包的,所以在build.gradle中注释掉这个maven引用,以免引起不必要的麻烦。还有一点就是以前项目中是有jni代码的,但是我们的jni代码目录组织结构比较复杂,不是标准的jni目录,AndroidStudio又不是靠mk文件来配置C代码,所以还没搞定,暂时只是把so包拿过来用,C代码的编译还是在eclipse下进行,将来搞定了我再回来给大家补充。下面把我的修改过程一一讲述一下:1、注释掉build.gradle中v7包的引用,这个上面已经说过了,因为项目中以前没用到v7包;2、迁移AIDL文件。如果你的项目中没有用到AIDL,那你可以跳过这部分。在eclipse中,aidl文件是跟java文件放在同一个包下的,但是AndroidStudio要求aidl文件默认放在模块下的src/main/aidl文件夹下,并且包名要与以前在java包下的包名、路径相同,比如以前aidl文件在com.example.mycode包下边,那么你也要在aidl文件夹下建这样一个同名的包,把aidl文件移过去,如果没有aidl文件夹,那就点右键新建一个,效果如下图所示:
aidl目录没有就新建一个
aidl文件的位置摆放
如果aidl文件摆放不正确,java中引用service的类就会报错,aidl文件默认是放在这里的,当然也可以通过配置build.gradle文件来使它们跟java代码混在一起,但是不建议这样做,我们尽量按照 AndroidStudio的默认配置来做;3、修改AndroidManifest.xml文件我在进行完以上步骤后尝试同步gradle配置,结果报了Execution failed for task ':app:processDebugManifest'.& Manifest merger failed with multiple errors, see logs这个错误,如下图所示
报Manifest merger failed错误
merger是合并的意思嘛,开始觉得很奇怪,我们工程又没有Library引用,跟谁合并呢,后来想起来build.gradle中引用了v7包,但是把v7包的引用注释掉还是不行,有网友说在manifest中使用tools:replace标签,可能这种方式只适用于Library模块引起的merger冲突,我的很显然不是这种情况;还有网友说在build.gradle的android标签下加入aaptOptions.cruncherEnabled false和aaptOptions.useNewCruncher false,开始时管了点用,后来多试几次又不行,看来也不是这个问题。后来用了一个笨办法,一点一点注释AndroidManifest.xml中的内容,看看注释掉哪一块可以不报错,结果发现是下图中所示的原因:
intent-filter标签是一个空标签
上图中,我的service下配置了intent-filter标签,按理说intent-filter标签下还应该有action子标签,比如像下图这样的标准写法:
百度定位SDK的写法是标准写法
所以,我们要做的就是注释掉AndroidManifest.xml中service标签下的空的intent-filter标签,至少我用这种方法处理后就不再报错了,看来AndroidStudio完全是一套新的api,跟以前的开发方式都不一样了;此外,由于版本号等配置在build.gradle文件中已经有了,所以我们在AndroidManifest.xml文件中要删掉重复的配置;4、图片资源引用问题经过以上几步修改后,项目终于可以编译运行了,但是悲剧也发生了,一打开app立马闪退,报的错误是:java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxxxx.xx/com.xxxxx.xx.xxxxx.MainActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class android.widget.RelativeLayout报错的地方就在Activity的onCreate方法中的setConentView方法处,什么原因呢?原因是我们在build.gradle中buildToolsVersion配置的版本过低,我一直在用19.1.0,在这个版本下,要求所有图片必须放在mipmap目录下才能在布局文件中引用,否则就会引起上述Activity闪退,当我把buildToolsVersion的版本改成23.0.2之后就可以引入放在drawable目录下的图片了,如下图所示:
buildToolsVersion建议用较新版本
还有的同学说这个错误是因为图片资源不符合规范,有些本来是jpg图片,只是把扩展名改成了png就拿来用,其实这个问题会导致build同步失败,根本就不可能让应用跑起来,关于这个问题,建议批量修改图片资源,把所有的图片都改成png格式,网上有很多修改图片的工具,但是mac操作系统下有一个现成的方法,不需要安装任何第三方软件就可以批量改图片格式,具体操作方法如下:5、图片资源不规范导致同步gradle失败的解决方法(Mac操作系统)(1)进入图片目录,按command+A选中所有图片,然后右键菜单选择打开方式-&选择“预览”这个应用程序,这个程序是Mac操作系统自带的,如下图所示:
用预览打开图片
(2)打开“预览”之后,点左上角的“显示”,勾选“缩略图”,就可以在预览窗口左侧看到所有图片的缩略图了,如下图所示:
勾选“缩略图”
(3)在缩略图区域的空白处点鼠标右键,勾选排序菜单中的“种类”,按种类排序,如下图所示:
所有图片按种类排序
然后你就可以看到下图所示的情景:
假的png图片被找了出来
(4)将jpg图片重新导出为png图片,方法是在图片上点鼠标右键(如果有多张图片想批量导出的话按住command键点鼠标进行多选,或者直接按command+A全选所有图片),选择“导出为...”, 在弹出的对话框中选择PNG类型,如下图所示
将图片导出为PNG格式
这样就可以将不符合规范的图片规范化了。这里之所以用Mac来讲是因为Windows下图片转换的工具有很多,一抓一大把,但是Mac中这类工具却相对较少,为了让大家少走弯路,分享一下Mac的图片转换方法,其实我也是在百度上找的,忘记哪个网站了,感谢那位朋友的无私分享。6、jar包和so包应该放在哪?在eclipse中,so包和jar都是放在lib目录下的,那么在AndroidStudio中是不是这样呢?当然不是的。(1)首先看jar应该放在哪?jar包应该放在模块下的libs目录下,如图所示:
jar包的位置
然后就可以了,因为在新建工程的时候,系统已经在build.gradle中自动为我们配置了jar包的位置,如图所示:
build.gradle中关于jar包位置的默认配置
所以我们不需要再配了,直接把jar包拷在libs目录下就可以用;(2)言归正转,so包应该放在哪呢?AndroidStudio默认的so存放位置是模块下的src/main/jniLibs目录,如图所示:
so包应该放在jniLibs目录下
如图所示,so包不能像在eclipse中那样跟jar包放在一起(默认情况下),如果没有jniLibs目录就自己建一个。其实无论是aidl文件的存放位置,还是so包的存放位置,都是可以通过build.gradle文件修改的,这个不是今天的重点,大家有兴趣可以自行搜索相关资料,我们尽量遵循AndroidStudio的默认方式,以便让别人看到我们的项目时不至于一头雾水。7、最后就是jni源码的存放位置以及如何配置了,这个我始终没搞明白,我知道常规的jni源码应该放在模块下的main/jni目录,跟java目录以及aidl目录并列,但是公司的这个项目有点特殊,jni目录下又包含了两个子目录,两个子目录又各自有各自的mk文件,我直接复制过来的话会报C语言中#include进来的头文件找不到,没办法我只能是在eclipse中编译好so文件之后再拷进来,但是这样一来就无法在AndroidStudio中调试C代码了,好悲摧~~~这个问题有点像是mk文件配置的问题,那么对应的build.gradle文件应该怎么配?还需不需要mk文件?如果有大神知道的话希望能够指点迷津,感激不尽。至此,我在迁移项目中遇到一些坑大概就总结到这里了,可能没办法涵盖所有的问题,但是希望有遇到跟我一样的问题的时候可以帮助大伙少走弯路。^_^eclipse导入Android Launcher3运行
时间: 01:21:52
&&&& 阅读:3517
&&&& 评论:
&&&& 收藏:0
标签:  最近需要定制一个mtk手持设备的Launcher,Android版本是4.4.2,Launcher版本是Launcher 3. 事实上网上已经有不少关于如何将Android 4.0的Launcher 2源码导入eclipse运行的文章了。比如:
1. http://blog.csdn.net/chenshaoyang0011/article/details/7857634
2. http://blog.csdn.net/klpchan/article/details/。
同时我又找到了一片关于eclipse如何导入Launcher 3的文章:
http://blog.csdn.net/deng0zhaotai/article/details/
基本上依照这三篇博文,我成功的将Launcher 3导入了eclipse从而方便做修改定制,遂记录之
  第一步:import工程,命名为Launcher3. 创建完工程后需要选择Android SDK版本,右键工程-&Properties-&Android选择SDK版本,这里我选择的是API 19.
  第二步:经过第一步后工程中依然会有无数错误,这是因为首先该工程是从源码上拉下来的,工程源码中用了很多Android未开放的API。这时就需要编译Android源码,因为要用到一些编译生成的class.jar文件,这样才能使用这部分API。编译完成后在out/target/common/obj/JAVA_LIBRARIES找到一下几个文件(箭头表示重命名为):
1. android_support_v13/class.jar    -----& android_support_v13.jar
2. framework_intermediates/class.jar  -----&framework.jar
3. common_intermediates/class.jar   -----&common.jar
4. core_intermediates/class.jar     -----&core.jar
上面四个文件用于在工程代码中调用Android未开放的API。在工程的Java Build Path中新建个User Library,然后将这4个jar文件加入该新建的User Library中。需要注意的是这个Library不需要编译进工程,因此在Java Build Path的Order and Export标签卡中,只需要把该Library移动到最上面,不需要勾选前面的复选框。否则编译会出错。
普通的Launcher 3就用到这几个jar。而从本工程的Android.mk文件的下面发现,该工程应该还需要另外的MTK的库,
LOCAL_STATIC_JAVA_LIBRARIES := android-support-v13
LOCAL_STATIC_JAVA_LIBRARIES += com.mediatek.launcher3.ext
LOCAL_JAVA_LIBRARIES += mediatek-framework
5. mediatek-framework_intermediates/class.jar  -----&mtk_framework.jar
6. com.mediatek.launcher3.ext_intermediates/class.jar&  -----&mtk_launcher3_ext.jar
将以上几个jar配置好后,发现仍然有错误。经检查源码发现还需要下面这个两个jar包
7. mediatek-common_intermedias/class.jar  -----&mtk_common.jar
8. com.google.protobuf.jar(这个jar包是从网上下载的)
以上4个jar包需要编译进工程,因为代码中依赖这些包的API不属于Android。如果需要编译进工程中,导入的方式和之前的内部jar包不同。需要在将以上4个jar包添加到工程的libs文件夹中(如果没有则在工程的根目录中新建之)。所有导入到libs文件夹中的jar包,ADT都会自动将其添加到Java Build Path的Android Private Libraries中,而且默认勾选其前面的复选框(代表需要编译进工程)。
  经过上面两次导入jar包后,错误减少了很多。但是工程中仍然有错误。最终查到是缺少了一个类BackupProtos.java。该类应该在com.android.launcher3.backup包中。其中BackupProtos.java在网上可以轻易找到。解决这个问题有两种方法,一种是直接在工程中新建相应的包,同时将BackupProtos.java放入内。另外一种是用jar -cf命令将该文件打包成jar包,然后放入libs文件夹内。
  导入所有依赖的jar包后,发现编译时还是有错,出错提示工程中有重复的dex文件。经排查发现mtk_launcher3_ext.jar包中有com/android/launcher3的目录,推测应该是该包和工程的包产生了冲突。因此,将源码中生成该jar包的文件拉下来,删除com/android/launcher3目录,重新制作jar包并替换掉libs中的原来jar包。
  经过以上的步骤,发现还是有错。 发现是mtk_launcher3_ext.jar中的LauncherLog类调用的Logx类找不到。为了方便,我直接在工程中新建了一个LauncherLog类,并将所有对mtk包中LauncherLog的引用替换。这样Launcher3就移植成功了。
  但是这样还是不能Android模拟器上运行。因为com.android.launcher3的包名和模拟器中的launcher3报名相同,无法安装。一种解决方法是将工程的包名重新命名,这种方法要改动太多的地方。另一种方法是将模拟器上的Launcher3卸载掉。这涉及到如何通过adb删除系统app。运行adb shell, 然后通过下面的命令将/system目录重新挂载为可读写:
mount | grep system
#得知哪个盘挂在到/system目录了,比如/dev/sda6
mount -o rw,remount /dev/sda6 /system
然后使用adb uninstall命令或者直接删除/system/app文件夹中对应的apk文件就可以卸载系统软件了。这样就可以在模拟器上运行我们导入的Launcher3工程了。  标签:
&&国之画&&&& &&&&chrome插件&&
版权所有 京ICP备号-2
迷上了代码!中国领先的IT技术网站
51CTO旗下网站
Eclipse Android项目导入到开发环境
Eclipse Android项目导入到开发环境是本文要介绍的内容,主要是来了解并学习Eclipse Android项目导入的内容,具体关于Eclipse Android内容的详解来看本文。
作者:佚名来源:CSDN博客| 17:52
Eclipse&Android项目导入到开发环境是本文要介绍的内容,主要是来了解并学习Eclipse&Android项目导入的内容,具体关于Eclipse&Android内容的详解来看本文。
Eclipse+ADT是目前最推荐的一种开发Android的开发环境,不过有些Eclipse&Android程序是使用Android提供的一些工具(如:Android命令)和其它IDEs中建立的,那怎么样才能将这些非Eclipse中建立的Android项目导入进来呢?
1.首先要确保你的Eclipse安装了ADT(AndroidDevelopmentTools)插件.(详细资料请查阅官方文档)
2.新建一个Android项目,此时选择&Createprojectformexistingsource&,在Location中点&Browse...&,先中Android项目所在文件夹。
其它的所以一切Eclipse&会自动识别,之后你点&Finish&,项目就成功导入到Eclipse中了
Eclipse&Android项目导入到开发环境是本文要介绍的内容,希望通过Eclipse&Android项目导入内容的学习能对你有所帮助!
【编辑推荐】
【责任编辑:&TEL:(010)】
大家都在看猜你喜欢
聚焦热点关注关注热点
24H热文一周话题本月最赞
讲师:133572人学习过
讲师:131439人学习过
讲师:83178人学习过
精选博文论坛热帖下载排行
本书是目前所能找到的最实用、最全面的Linux指南和参考手册,也是唯一一本提供以下全部内容的书籍:
更好更实用的示例覆盖了实际工作中需...
订阅51CTO邮刊

我要回帖

更多关于 eclipse 导入idea工程 的文章

 

随机推荐