我相信很多初学者会和我一样经常在网上去找Android开发源码,但是往往因为运行不起来非常的懊恼!在做
爱开发网站的时候,收集App代码时就遇到了这种困难,我相信网络上面的源码大部分在发布前都会人工测试,能够正常运行才会发布,要肯定是没法截图的,那么我们应该如何解决这样的问题呢?
首先让我们来看看到底是哪些原因造成的这种问题,一个源码不能正常运行的原因可能有很多,比如有一些项目是有时效性的,通俗的讲就是项目以前依赖的服务端可以用但是现在不能用了,比如源码作者把服务端关闭了,或者软件内置的第三方jar包太老了不能正常返回项目请求的数据了,这种情况会导致项目打开运行时报错,常见的现象就是运行起来以后卡在一个初始化界面不动或者就干脆闪退,这种情况必须要更改或者屏蔽这段需要联网检测或者服务的代码才能解决问题,下面说的几种情况是你在网上下载下来的安卓源码导入到eclipse里面不能运行的解决方法,不是源码运行起来出错的解决方法,接下来我教你一一排查
下载的文件是否有问题
解决办法是用解压软件打开或者解压的过程中有没有弹出什么错误提示,如果有错误提示那就重新下载一遍文件。或者去其他网站寻找相关的资源进行下载。
弄清楚IDE的版本
如果确定下载的压缩包没有问题那就看看是不是编译工具不一样,
爱开发App源码论坛测试的时候用的是Android Developer Tools Build: v22.6.2-1085508(如果你不知道怎么看IDE的版本请自行百度),理论上adt22.6以上的版本都可以正常导入本站的项目。adt22.6以下不敢保证,不过你可以多导入几个项目试试是不是都报错,如果都报错的话那就可能是IDE问题。如果你用的Android Studio或者其他工具请自行解决文件导入问题
检查项目导入是否正确
正确的项目导入步骤是:打开eclipse-->点击File--选择-->Import-->点击android下的Existing Android...-->点击Browse,查找你的工程-->最后点击“Finish”,完成(强调一下,你的工程一定不要放在第一次eclipse生成的工作空间的目录下,不然导入不会成功。。。 )如果还是不懂,可以看下图文教程:
这里
SDK编译版本
很多朋友的adt是在谷歌官网或者在网上随便找了一个,谷歌官网的adt默认只带有一个最新版本的sdk,低版本的sdk还需要通过adt自带的Android SDK Manager 自己下载。如果你不知道你的adt包括哪些版本的sdk你可以在点你adt上面的菜单:Window-Preferences-Android(汉化版本:窗口-首选项-Android)查看你的环境都有哪些sdk,本站用来测试源码的sdk经常使用的版本有:2.3.7、4.2.2、4.4.2,老一些的源码大多是使用2.3.7测试的,新源码4.4.2居多。如果你的sdk不包括4.4.2或者4.2.2可以去
这个网站找到这两个版本的sdk下载下来,怎么使用下载下来的sdk这个网站有说明,在这里不深究。
项目编码问题
另外还有一个问题就是判断一下项目的编码是否正确,如果你导入的源码在源码名字上面有一个红叉叉,点那个带有红叉叉的文件夹图标发现一个名字叫src的文件夹图标上也有一个红叉叉,依次点开带红叉叉的文件夹或者文件,双击点开出错的java文件,在代码编辑窗口点右侧小红方块就可以快速定位到出错的代码行,看一下这行代码是不是里面夹杂着乱码,这时你在你的项目名字上点右键选择最后一个菜单Preferences(汉化版本:首选项)(或者点击项目名字然后按快捷键Alt+Enter效果一样),在弹出窗口什么都不点在右侧找Text file encoding(汉化版本:文本文件编码)这一项,勾选Other(汉化版本:其他),如果显示的GBK那就换成UTF-8如果是UTF-8那就换成GBK(中国大陆最常用的就是这两种编码),点确定。项目几秒后就会自动刷新,看一下红叉叉是不是没了,如果还存在的话那就选中项目点菜单里面的Project->Clean...->Clean projects selected below(汉化版本:项目->清理->清理下面所选项目)然后勾选要清理缓存的项目名字点OK就会强制清理项目缓存
是否缺少依赖
一些较大的项目大多包括有子项目或者使用了第三方的库文件,你可以在你的项目名字上点右键选择最后一个菜单Preferences(中文版的名字叫首选项)(或者点击项目名字然后按快捷键Alt+Enter效果一样),点左侧的Android菜单这时右侧会出现两个小窗口,一个是Project Build Target(项目编译版本)一个是Library。看一下Library里面有没有一个红叉有的话把鼠标放到这行路径上面2秒不要动会显示路径全名,大致记一下名字,然后点Add,eclipse会自动列出你导入的过的Library,看看有没有名字跟你刚才记的名字差不多的点,双击就会添加了,然后再把出错的Remove掉就可以了,然而大部分情况是点Add出来的弹出框什么都没有,这时候你就要自己想办法找到依赖的Library了,
http://bbs.aiyingli.com/发布的源码如果需要Library会一同打包。如果是在其他地方找的项目源码那Library估计就不好找了。
是否缺少jar包
很多项目用到了一些第三方的jar包,但是作者使用的jar包可能没有放到项目目录下面,导致打包的时候没有打进去,别人导入了这个项目就会去源路径找这个jar包,但是导入人的电脑这个路径上肯定不会有这个jar包的,你可以在你的项目名字上点右键选择最后一个菜单Preferences(汉化版本:首选项)(或者点击项目名字然后按快捷键Alt+Enter效果一样),点左侧的Java Build Path菜单(汉化版本:Java构建路径)这时右侧会出现一个有四个选项卡的的窗口,点Libraries(汉化版本:库)窗口看看下面有没有红叉叉,有红叉叉点Add JARs点开你正在解决问题的这个项目,再点libs目录,看看有没有同名的jar包,如果有的话就双击选择,然后选中带红叉叉的jar包点Remove。如果没有的话就自己想办法搞这个jar去了,我的做法是把jar包名字放在百度里面搜,看看能不能找到相同文件名的文件,然后放到项目的libs目录里面再按照上面的方法引用,如果找不到那就自求多福了。点确定。项目几秒后就会自动刷新,看一下红叉叉是不是没了,如果还存在的话那就选中项目点菜单里面的Project->Clean...->Clean projects selected below(汉化版本:项目->清理->清理下面所选项目)然后勾选要清理缓存的项目名字点OK就会强制清理项目缓存
最后推荐几个非常棒的App源码下载站:当然CSDN上有很多优质的代码,另外大家可以看下
app源码论坛,上面的代码非常全面给力同时都可以运行。
- Android版的疯狂猜图游戏源码完整版分享
这个游戏源码是在安装教程网那么分享过来的,Android版的疯狂猜图游戏源码完整版分享,也是本人之前很早以前发的一款游戏源码的,大家如果想了解一下,可以看看吧,不说多了,上一个图先吧. > ...
- android源码 分享1
技术博客 "碎片化"严重,安卓走向封闭?[Bus Weekly]48期 阅读数:286 2017-05-08 按照NetMarketShare统计数据显示, ...
- Android学习进阶路线导航线路(Android源码分享)
转 ...
- 分享一个完美的新闻客户端(酷商城)Android源码
分享一个完美的新闻客户端(酷商城)Android源码,这个源码项目是从安卓教程网转载过来的,项目主要是解析html,fragment,异步缓存图片加载,webview加载网页等.可以正常的运行的,我已 ...
- (转)Android学习进阶路线导航线路(Android源码分享)
转载请注明出处:http://blog.csdn.net/qinjuning 前言:公司最近来了很多应届实习生,看着他们充满信心但略带稚气的脸庞上,想到了去年的自己,那是的我是不是也和 现在的他们一 ...
- 从Android源码的角度分析Binder机制
欢迎访问我的个人博客,原文链接:http://wensibo.top/2017/07/03/Binder/ ,未经允许不得转载! 前言 大家好,好久不见,距离上篇文章已经有35天之久了,因为身体不舒服 ...
- Android 源码下载方法(Git 方式clone)
Android源码对于Android开发者来说,迟早有一天你会用到的,所以就记录一下,分享给读者,希望对读者有用 这里需要使用到Git相关知识,不清楚的可以先阅读,了解的可以跳过 Git-Tortoi ...
- 关于在线查看相关开源源码的网站,包括Android源码
无废话,纯干货! 各种源码自行搜索: http://grepcode.com/ Android源码:http://grepcode.com/project/repository.grepcode.co ...
- android源码-安卓源码-Android源码下载-安卓游戏源码
android源码 高仿精仿金山手机卫士应用源码V1.2 高仿精仿金山手机卫士应用源码,该应用的级别实现了金山卫士的级别功能了,可以说跟现实中我们使用的金山卫士应用的功能几乎差不 人气:9286 ...
随机推荐
- 【转】【公司调查】车来了APP
http://blog.sina.com.cn/s/blog_83b10acc0102vk7k.html [APP简介] "车来了"是武汉元光科技有限公司开发的一款查询公交车实 ...
- 深入Delphi -- Windows 消息机制
http://www.txsz.net/xs/delphi/3/Windows%20%E6%B6%88%E6%81%AF%E6%9C%BA%E5%88%B6.htm Windows 消息机制 by m ...
- Citrix 服务器虚拟化之二十八 XenApp6.5发布文档内容
Citrix 服务器虚拟化之二十八 XenApp 6.5发布文档内容 XenApp可发布以下类型的资源向用户提供信息访问,这些资源可在服务器或桌面上虚拟化: 1) 服务器桌面:发布场中服务器的整个 ...
- SICP 习题 (1.7) 解题总结
SICP 习题 1.7 是对正文1.1.7节中的牛顿法求平方根的改进,改进部分是good-enough?过程. 原来的good-enough?是判断x和guess平方的差值是否小于0.001,这个过程 ...
- volatile synschonized的区别
在一次面试中,被问到volatile与synschonized的区别,概念模模糊糊,今天做一个总结,加强自己的认识. 本文参考http://www.cnblogs.com/dolphin0520/p/ ...
- ios开发——实用技术篇&数据保存于恢复
数据保存于恢复 用户操作(输入数据)之后,应用程序退出并且终止之后,当用户再次打开应用的时候还是保持原来的状态 一:在storyBoard中设置恢复标志符 二:在AppDalegate中代理方法 -( ...
- except ShortInputException,x中逗号
class ShortInputException(Exception): def __init__(self, length, atleast): Exception.__init__(self) ...
- EJB究竟是什么,真的那么神奇吗??
1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"? 既然说了EJB 是为了"服务集群"和"企业级开发",那么 ...
- 分享一款页面视差滚动切换jquery.localscroll插件
今天给大家分享一款页面视差滚动切换jquery.localscroll插件. 滚动鼠标液动条看下页面的切换效果.该插件适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera ...
- 把你的旧笔记本变成 Chromebook
导读 Linux 之年就在眼前.根据报道,Google 在 2016 年第一季度卖出了比苹果卖出的 Macbook 更多的 Chromebook.并且,Chromebook 即将变得更加激动人心.在 ...