Android工程图片资源命名禁忌
Android工程中,res\drawable\ 文件夹下所有的图片资源文件命名,不允许:
1. 大写字母
从Eclipse的这个报错可以知道资源文件的命名规则。
Invalid file name: must contain only [a-z0-9_.]
参考Android Issue 31。
2. "default.png"
不能生成 R.java,报错:
res\drawable\default.png:0: error: invalid symbol: 'default'
出现这个错是因为类似default和continue等是Java的保留符号,而Android项目中资源文件(譬如drawable中的图片和strings.xml等)不能使用Java保留符号的原因是它们会被翻译成Java代码(R.java),使Dalvik
VM可以解释。
例如strings.xml中的
<string name="continue">Continue</string>
可被翻译成
public final class R {
public static final class string {
public static final int continue=0x7f040000;
}
}
Java的Keyword清单:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
3. 以下划线("_")开头
不能生成 R.java,报错Type是 "Android AAPT Problem"。
(skipping (null) file ...)
2009年提交的Android Issue 5343指出“Files in the assets folder starting with an underscore are omitted by the build
script”,“Folders starting with an underscore are omitted without warning.”。更多信息都在5343这个issue detail里。
看上去,res/drawable里以下划线开头的文件也被aapt报错了。类似的还有人提到res/raw里的python脚本文件__init__.py。
4. 以数字加下划线("[0-9]_")开头
常见于图片资源。可以生成 R.java,但是 R.java 文件内报错:
Underscores can only be used with source level 1.7 or greater
这里涉及到两种情况。
Java标识符不能以数字开头,第一个字符应该是字母。
下划线。Java 7中引入了一个新特性“Underscores in Numeric Literals”。譬如1_000就是1000。
以数字开头的报错如下:
Syntax error on token "0xxx", delete this token
Android工程图片资源命名禁忌的更多相关文章
- 【Android学习】Android工程资源命名禁忌
在制作一个继续按钮时,将button的id设置为continue,发现报了错误,error: invalid symbol: 'continue' 一开始还以为是编码问题,后来百度之后才知道安卓And ...
- Android应用程序开发之图片操作(二)——工程图片资源的加载及OOM的处理
(一)工程图片资源的加载方法 在Android应用程序开发之图片操作(一)中,详细说明了如何操作各种资源图片,只是有的没有附上示例代码,在此,我将针对项目工程中的图片资源的显示加载进行说明.官方说明, ...
- 在android工程中添加图片资源(转加)
在Android工程中,每添加一个资源,就会在gen目录下的R.java中自动生成一个新的静态整型变量来指向这个资源.程序文件中调用资源的时候,先在R.java中找到变量名,然后根据变量值查找资源. ...
- Cocos2d-x游戏导出android工程,提取cocos的so文件
Cocos2d-x游戏导出android工程,提取cocos的so文件 原本cocos游戏的android工程编译时,需要将cocos的库文件进行编译,这些文件大部分是cpp文件, 使用ndk ...
- Android工程:引用另一个Android工程的方法详解
本篇文章是对在Android中引用另一个Android工程的方法进行了详细的分析介绍.需要的朋友参考下 现在已经有了一个Android工程A.我们想扩展A的功能,但是不想在A的基础上做开发,于是新 ...
- GJM : Unity3D HIAR -【 快速入门 】 五、导出 Android 工程、应用
导出 Android 工程.应用 在开始之前,请务必先保存您的工程,同时确认您已经安装 Android SDK 和 JDK.安装操作请参考以下链接: 搭建开发环境 Step 1. 设置 Android ...
- Android工程的编译过程
现在很多人想对Android工程的编译和打包进行自动化,比如建立每日构建系统.自动生成发布文件等等.这些都需要我们对Android工程的编译和打包有一个深入的理解,至少要知道它的每一步都做了什么,需要 ...
- Unity3D 解决用Unity导出的Android工程在6.0及以上设备会弹出一串权限对话框的问题
解决用Unity导出的Android工程在6.0及以上设备会弹出一串权限对话框的问题 <meta-data android:name="unityplayer.SkipPermissi ...
- eclipse android工程没有错却出现红叉
[转]eclipse android工程没有错却出现红叉 问题描述: 这是一个很变态的问题,花了我N多时间才解决掉,而且弄得心情非常郁闷,这明显是ADT的bug嘛,为什么最新的版本还没有解决? 将Li ...
随机推荐
- 个人项目 Individual Project
通讯录中的联系人包含以下信息项:姓名.手机.办公电话.家庭电话.电子邮箱.所在省市.工作单位.家庭住址,群组分类(亲属.同事.同学.朋友.其他). 系统的主要功能包括: 1. 输入联系人的信息,要求: ...
- Python解释器有哪些?Python解释器种类
Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的五种Python解释 ...
- 【翻译】asp.net core2.1认证和授权解密
asp.net core2.1认证和授权解密 本篇文章翻译自:https://digitalmccullough.com/posts/aspnetcore-auth-system-demystifie ...
- 校园电商项目2(基于SSM)——模块设计
步骤一:各模块职责 步骤二:实体类设计 package com.figsprite.o2o.bean; import java.util.Date; public class Area { priva ...
- MySQL 字段内容区分大小写
数据由Oracle 迁入MySQL ,由于之前Oracle区分大小写,MySQL的配置使用了默认配置,导致一些数据导入失败,有的唯一键报错,冲突. 将测试过程记录在下面. 数据库版本:MySQL 5. ...
- Android——线程通讯 Handler、Looper、Message;
线程通讯问题 (主要用到了Handler类,Looper类和Message类以及MessageQueue) 在Android中主线程如何向子线程中发送消息的问题.让我们来想想,这其中的过程,无非就是创 ...
- ubunto启动chrome报错
/usr/bin/google-chrome-stable[5199:5199:0703/143543.136117:ERROR:zygote_host_impl_linux.cc(88)] Runn ...
- java学习之—链表(2)
/** * 双端链表操作 * Create by Administrator * 2018/6/14 0014 * 下午 2:05 **/ class Link1 { public long dDat ...
- CMD & Git Shell & Bash Shell
CMD & Git Shell & Bash Shell https://mvdan.cc/sh/cmd/shfmt PC
- 开机自动获取spark用户名和服务器
import os.path import getpass import platform import time username = getpass.getuser() #获取当前用户名 home ...