java - 奇怪的错误 : Skipping entry 0x106000d in package table 0 because it is not complex

标签 java android runtime-error

<分区>

我得到一个错误:

12-27 20:53:21.874: W/ResourceType(829): Skipping entry 0x106000d in package table 0 because it is not complex!

代码:

private void change(final String txt , final int res , final int max , int seconds , final boolean s) {
    i = 1;
    final Timer timer = new Timer();
    timer.schedule(new TimerTask() {
        @Override
        public void run() {
            if(i <= max){
                int resourceId = getResources().getIdentifier(txt.replaceAll("i", String.valueOf(i).toString()), "id", getPackageName());
                ImageButton imageButton = (ImageButton) findViewById(resourceId);
                imageButton.setBackgroundResource(res);
                if(s) {sound();}
                i++;
            }else{
                this.cancel();
                timer.cancel();
            }
        }
    },0,seconds);
}

private void change2(final int res , final int c ,final int r , final int seconds , final boolean s) {
    i = 1;
    u = 1;
    final Timer timer1 = new Timer();
    timer1.schedule(new TimerTask() {
        @Override
        public void run() {
            if(i <= c){
            final Timer timer2 = new Timer();
            timer2.schedule(new TimerTask() {
                    @Override
                    public void run(){
                        if(u <= r){
                            int resourceId = getResources().getIdentifier("c"+i+"_r"+u, "id", getPackageName());
                            ImageButton imageButton = (ImageButton) findViewById(resourceId);
                            imageButton.setBackgroundResource(res);
                            if(s) {sound();}
                            u++;
                        }else{
                            this.cancel();
                            timer2.cancel();
                        }
                    }
            },0,seconds);}else{
                this.cancel();
                timer1.cancel();
            }
        }
    },0,seconds);
}

public void onClickNext(View v){
    change2(R.drawable.white_circle,left_num,right_num,250,false);
    change("c"+left_num+"_ri", R.drawable.red_circle , right_num , 500 , true);
    change("c"+left_num+"_ri", R.drawable.white_circle , right_num , 500 , false);
    change("ci"+"_r"+left_num, R.drawable.green_circle , left_num , 500 , true);
    change("ci"+"_r"+left_num, R.drawable.white_circle , left_num , 500 , false);
    change2(R.drawable.yellow_circle,left_num,right_num,250,true);
}

在 xml 中我有 10x10 ImageButtonc1_r1c10_r10 ,当 c 是 Column 并且 r 是原始

因为我有很多 ImageButton,所以我尝试通过字符串获取 ID。

我使用 TimerTimerTask 在下一次更改之前暂停一段时间。

如有任何问题,请输入评论。

抱歉代码复杂。

最佳答案

这是一个警告。除非您遇到导致应用程序崩溃等问题,否则请忽略它。操作系统记录了我们作为开发人员最终不得不忽略的各种东西。如果您有任何问题,请检查此链接: http://thesoftwarerogue.blogspot.com/2010/12/skipping-entry-in-package-table-0.html

更新: http://developer.android.com/reference/android/content/res/Resources.html#getIdentifier(java.lang.String , java.lang.String, java.lang.String)

 public int getIdentifier (String name, String defType, String defPackage)

在 API 级别 1 中添加

返回给定资源名称的资源标识符。完全限定资源名称的格式为 "package:type/entry"。 如果此处分别指定了 defType 和 defPackage,则前两个组件(包和类型)是可选的。

注意:不鼓励使用此功能。通过标识符检索资源比通过名称检索资源效率更高。

关于java - 奇怪的错误 : Skipping entry 0x106000d in package table 0 because it is not complex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20810354/

相关文章:

java - NoClassDefFound错误: org/glassfish/jersey/process/internal/RequestExecutorFactory

java - 为基于 JSF 的 Web 应用程序选择测试框架

java - 使用 DirectMediaPlayer 通过 vlcj 播放大型视频 (FullHD+)

java - Java 1.6 与 Neo4j 兼容吗?

java - Maven 和代码指标 : check for existence of a test case for each class

java - 更改 AlertDialog 按钮对齐方式

android - 如何在 Android 中以编程方式从设备读取 SMS 消息?

unix - Cygwin错误消息—二进制文件不可执行

android - ScrollView 内的 PercentRelativeLayout

ios - 这个 iOS 错误是什么?它来自哪里?