随笔 - 383  文章 - 0  评论 - 0  阅读 - 35557 

 

1.          编译报错,找不到R相关资源
在源码目录下新建一个应用,或者复制其它应用时,常出现这个错误。

1)         什么是R.java
R.java
中编译时自动生成的,工程用到所有的资源,都会用到R.java

2)         何时生成
在源码根目录下make全部代码时,才会对每个模块生成R.java
对资源更改后也会重新成生R.java

3)         生成在哪里
out/target/common/obj/APPS/
程序名/…../R.java (find找一下)

4)         解决方法
只要把相关的R.java都删掉
再更新资源(res目录)中一个资源文件(xml),使得R.java重新生成
重新mm

2.          查看当前堆栈调用关系
$ rm /data/anr/traces.txt                
清除之前log信息,因为log信息是追加到此文件中的
$ ps
找应用对应进程号
$ kill -3
进程号                    该进程当前的堆栈调用写入traces.txt
$ cat /data/anr/traces.txt                
查看堆栈信息

3.          修改framework带来的界面显示不正常
重编公共控件时,新生成了framework.jar,常用把它复制到设备中/system/framework/目录下的方法调试,有时会遇到替换framework.jar带来的资源不对的问题,即有些文字和图片显示不正常了。
这是由于framework.jarsystem目录中其它的资源ID不统一造成的。解决办法是重做system.img并把它烧写到系统中(参见烧写文档),以下两种方法重做system.img

1)         使用打包命令
$ out/host/linux-x86/bin/mkyaffs2image -f out/target/product/qsd8250_surf/system  out/target/product/qsd8250_surf/system.img

2)         在编译时加snod参数,以重建系统镜像(system.img
$ mm snod

4.          打印当前类名和包名

1)         打印当前类名
Log.d(“TEST”, “class “ + this);

2)         打印当前包名
Log.d(“TEST”, “package” + context.getPackageName());

5.          程序中等待的实现
import java.lang.Thread;               // sleep
属于Thread

try {            // sleep
必须使用try
         Thread.sleep(50);
} catch (InterruptedException e) {
}

(转载请注明出处:http://xy0811.spaces.live.com

 

posted on   xieyan0811  阅读(25)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示