作为新手,学习android 的时候难免要导入一些示例,目的为了更加了解android各种API用法,顺便也可以学习下别人代码的写法。
可是导入android源码后,基本都有错误,R.java也不会自动生成,
因为是第一次导入工程,工程有错R.java就不会自动生成了,工程有错误,当然模拟器就不能启动,也就看不到效果。
在网上找到的各种解决方法,总结如下:
1、选择菜单 Project >> Clean ,前提是勾选上 Bulid Automatically(自动构建部署) , 点Clean后会重新构建项目。
因为一般情况下,R.java文件在这个时候会重新更新生成一边,如果工程有错,就不会自动生成。
2、选择工程,右键 Android Tools >> Fix Project Properties 这个操作有时候可以修正一些错误。
3、还有的说法是重新建一个空的工程,然后把这里面的代码,资源文件按照对应的包路径什么的拷进去,然后重新生成。
这种方法,等价于第1种方法,都是重新构建部暑。
以上几种方法都试了,R.java依旧没出现,整个工程还是一大堆错误。任意点开一个有错误的布局XML文件,如果看到类似的错误代码: android:layout_height="match_parent" , 就有可能是工程的SDK版本和eclipse默认的SDK版本不匹配的问题。
于是选择工程,右键 Properties >> Android 然后看到右边的一块 Target Name, 把选中 Android 1.5,换到2.2(最新的),重新构建。
错误没了,久未解决的问题解决了,R.java也出来了,一个字高兴啊,启动模拟器一切正常。
总结下当导入其它源码时候,首先要保证源码的SDK版本和你eclipse默认版本是否一致。
查看源码版本办法:打开default.properties 文件,看target=android-7 这后面这个数是多少。
版本对应关系:target=android-3 <---> android 1.5 ... ..., target=android-8 <---> android 2.2 其它的自己测试下。
-----------------我是分割线-----------------------------------------------------------------------
自动生成的工程里缺少R.java,
按照网上的方法“右击你的工程(项目)——>Android Tools——>Fix Project Properties ”不管用,
确保项目编译了一下clean,或是右击项目-->property-->android-->applay一下 也是不行
google和百度一通后,无果。
继后跟踪发现,R.java在工程里面自动生成,后到官方站点看了帮助文档,发现通过platform-tools路径下的aapt.exe执行,
再经过检测,aapt.exe程序好像已经损坏,不能执行,故而再sdk setup中执行,获取该文件,覆盖原来的,R.java自动产生了。
问题解决,为何aapt.exe损坏,还有待考证:
http://www.cnblogs.com/cngreatwall/archive/2011/03/11/1980525.html
-----------------我是分割线-----------------------------------------------------------------------
R.java 文件不能生成,但碰到的和上面提到的都不一样——
1、:AndroidManifest.xml
<activity android:name=".Index" android:label="@string/index"> </activity>
提示 index没定义!
2、包名改了, AndroidManifest.xml里的还没改过来。
3、资源文件只能以小写字母和下划线做首字母,随后的名字中只能出现 a-z、0-9、_ 这些字符。
android 工程里缺少 R.java 文件原因和解决方法的更多相关文章
-
兔子--R.java丢失原因及解决的方法
R.jar丢失原因: a:eclipse指向的adk路径有中文,或者是workspace路径有中文 b:xml文件里有错误或者引用的资源不存在 c:xml或者drawable下资源文件不能够有大写字母 ...
-
Android Studio 项目代码全部消失--出现原因及解决方法
出现原因,自己把项目地址父层目录文件名修改了,导致原来打开的项目位置不对,代码全部消失.这样就只要关闭项目,打开一下你修改路径下的项目即可.因为原来的项目还在原来的路径下寻找,但是原来的路径发生了改变
-
Tomcat的webapps目录下的classes文件夹下缺失编译好的.class文件原因及其解决方法
右键,选择BuildPath: 可以编辑Output folder,指定编译后的文件的存放目录,一般是target/classes目录
-
Android Studio maven-metadata.xml 卡着不动原因和解决方法
头一天好好的,第二天就卡着了. 一直在这个地方不动,如果停止就会报 Error:Could not run build action using Gradle distribution ‘https: ...
-
Android下HelloWorld项目的R.java文件介绍
R.java文件介绍 HelloWorld工程中的R.java文件 package com.android.hellworld; public final class R { public s ...
-
R.java文件介绍
HelloWorld工程中的R.java文件 package com.android.hellworld; public final class R { public static final ...
-
eclipse android 不会自动生成R.java文件和包的解决办法
eclipse下编写android程序突然不会自动生成R.java文件和包的解决办法 我的eclipse原来是好好的,什么问题都没有的,结果今天一打开新建一个android程序,发现工程里不会自动 ...
-
【android相关】【问题解决】R.java文件丢失
在进行android开发过程中,有时候,我们会遇到gen文件中R.java丢失的现象.重新build,或者clean工程,close并重新打开Project,但有时也没解决. 这可能是由于不小心把xm ...
-
[转]eclipse下编写android程序突然不会自动生成R.java文件和包的解决办法
原网址 : http://www.cnblogs.com/zdz8207/archive/2012/11/30/eclipse-android-adt-update.html 网上解决方法主要有这几种 ...
随机推荐
-
android studio SDK版本的调节
android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 17 ...
-
ios晃动检测
ios晃动检测 第一种 1.在AppDelegate.h中进行如下设置: - (BOOL)application:(UIApplication *)application didFinishLaun ...
-
(一)Harbor安装 -- 企业级Registry仓库
根据Harbor官方描述: Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源Docker Distri ...
-
获取sql执行时间
sql server中获取要执行的sql或sql块的执行时间,方法之一如下: declare @begin datetime,@end datetime set @begin =getdate() - ...
-
安卓 Android题目大全
安卓001个人事务管理系统(单端) 安卓002手机订餐系统 安卓003无线点菜 安卓004酒店房间预定系统 安卓005个人相册管理系统(单端) 安卓006计算器(单端) 安卓007英语学习(单端) ...
-
css3动画-transition
当css属性改变的时候,控制animation的速度,让属性的变化发生在一段时间之内,而不是立即生效. 语法 transition: <property> <duration> ...
-
vbs的一些入门基础。。。
VBS(VBScript的进一步简写)是基于Visual Basic的脚本语言. Microsoft Visual Basic是微软公司出品的一套可视化编程工具, 语法基于Basic. 脚本语言, 就 ...
-
Java面向对象特征之封装
package practice;/** * @功能 创建动物类,对动物的属性进行封装 * @author square 凉 * */public class Animal { /** * 动物姓名 ...
-
JS 时间函数 / 格式化时间戳
处理时间主要使用时间对象 Date , 其提供两个静态方法 Date.now() //获得当前时间戳 Date.parse() //将字符串转化成时间戳 创建对象 new Date(); // 返回当 ...
-
ROR中h()方法和sanitize的区别及Html Filter
一般来说,通常使用input的field都会做一些filter的动作,避免被不怀好意之徒塞一些危险的HTML code(script等)进去搞破坏.在ROR中,我们在前面加一个h()(一般不用括号?不 ...