错误:code过大 [英] Error: Code too large

查看:182
本文介绍了错误:code过大的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在做一个应用程序,它查找一个数据库(我目前正在建设)。我已经做了它,当我在错误10/12:code太大作为一个摇篮构建信息

I'm making an app where it looks up on a database (that I am currently building). I have done over 10/12 of it when I got the error:code too large as a Gradle Build message.

Java文件是pretty的多少只是一个数据库(与其他类中使用的数据)。

The java file is pretty much just a "database" (with data used in another class).

它有以下形式:

static int[][] mDatabase10 = new int[][]{{1, 0, 0, 0, 11, 22},
        {1, 53, 42, 0, 41, 0},
        {7, 34, 11, 33, 32, 0}};

有80阵列阵列的每个阵列(其中12):

There are 80 arrays in each array of arrays (12 of these):

static int[][][][] dbDatabase = {{mDatabase10, mDatabase10a, mDatabase10b, mDatabase10c,
        mDatabase10d, mDatabase10e, mDatabase10f, mDatabase10g, mDatabase10h, mDatabase10i,
        mDatabase10j, mDatabase10k, mDatabase10l, mDatabase10m, mDatabase10n, mDatabase10o,
        mDatabase10p, mDatabase10q, mDatabase10r, mDatabase10s, mDatabase10t, mDatabase10u,
        mDatabase10v, mDatabase10w, mDatabase10x, mDatabase10y, mDatabase10z, mDatabase11a,
        mDatabase11b, mDatabase11c, mDatabase11d, mDatabase11e, mDatabase11f, mDatabase11g,
        mDatabase11h, mDatabase11i, mDatabase11j, mDatabase11k, mDatabase11l, mDatabase11m,
        mDatabase11n, mDatabase11o, mDatabase11p, mDatabase11q, mDatabase11r, mDatabase11s,
        mDatabase11t, mDatabase11u, mDatabase11v, mDatabase11w, mDatabase11x, mDatabase11y,
        mDatabase11z, mDatabase12a, mDatabase12b, mDatabase12c, mDatabase12d, mDatabase12e,
        mDatabase12f, mDatabase12g, mDatabase12h, mDatabase12i, mDatabase12j, mDatabase12k,
        mDatabase12l, mDatabase12m, mDatabase12n, mDatabase12o, mDatabase12p, mDatabase12q,
        mDatabase12r, mDatabase12s, mDatabase12t, mDatabase12u, mDatabase12v, mDatabase12w,
        mDatabase12x, mDatabase12y, mDatabase12z, mDatabase13a},

        {mDatabase20, mDatabase20a, mDatabase20b, mDatabase20c, mDatabase20d, mDatabase20e,
                mDatabase20f, mDatabase20g, mDatabase20h, mDatabase20i, mDatabase20j,
                mDatabase20k, mDatabase20l, mDatabase20m, mDatabase20n, mDatabase20o,
                mDatabase20p, mDatabase20q, mDatabase20r, mDatabase20s, mDatabase20t,
                mDatabase20u, mDatabase20v, mDatabase20w, mDatabase20x, mDatabase20y,
                mDatabase20z, mDatabase21a, mDatabase21b, mDatabase21c, mDatabase21d,
                mDatabase21e, mDatabase21f, mDatabase21g, mDatabase21h, mDatabase21i,
                mDatabase21j, mDatabase21k, mDatabase21l, mDatabase21m, mDatabase21n,
                mDatabase21o, mDatabase21p, mDatabase21q, mDatabase21r, mDatabase21s,
                mDatabase21t, mDatabase21u, mDatabase21v, mDatabase21w, mDatabase21x,
                mDatabase21y, mDatabase21z, mDatabase22a, mDatabase22b, mDatabase22c,
                mDatabase22d, mDatabase22e, mDatabase22f, mDatabase22g, mDatabase22h,
                mDatabase22i, mDatabase22j, mDatabase22k, mDatabase22l, mDatabase22m,
                mDatabase22n, mDatabase22o, mDatabase22p, mDatabase22q, mDatabase22r,
                mDatabase22s, mDatabase22t, mDatabase22u, mDatabase22v, mDatabase22w,
                mDatabase22x, mDatabase22y, mDatabase22z, mDatabase23a},

        //so on until mDatabase123a...

最后有功能所请求的数组返回给其他类

Finally there is function to return the requested array to the other class.

public static int[][] Chordlookup(int chordpart1, int chordpart2){

    return dbDatabase[chordpart1-1][chordpart2-1];
}

现在从我的理解,阅读关于这个问题在互联网上,它关系到该database.java类是太大了。我该如何解决这个问题?

Now from my understanding reading on the internet about this problem, it is related to that the database.java class is too big. How can I solve this?

我接受建议,我不这么有经验与Java ...

I'm open to suggestions as I am not so experienced with java...

编辑:

说明哪些code做了一点:

A bit of description to what the code does:

每个mDatabase是一个和弦(例如CM7) 每组6个整数是一个位置,发挥这一和弦:    {1,0,0,0,11,22} 有些和弦可能有其中的一个,有些还多。

each mDatabase is a chord (for example Cm7) each group of 6 ints is a position where to play that chord: {1, 0, 0, 0, 11, 22} Some chords might have one of these, some have more.

然后在dbDatabase每个块(mDatabaseX0到mDatabaseX3a)是根(如A,B,C,D,E,F,G)

then in the dbDatabase each block (mDatabaseX0 to mDatabaseX3a) is a root (as in A,B,C,D,E,F,G)

推荐答案

code被限制为64K字节,当你初始化数组,你这样做是code。

Code is limited to 64K bytes and when you initialize an array you do this in code.

最好的办法是将数据存储在一个文件中读出你需要的数据。注:该文件可以部署与应用程序,并直接从档案中获得

The best option is to store the data in a file and read the data you need. Note: the file can be deployed with the application and obtain directly from the archive.

另一种选择是使用一个字符串代替(多个字符串并不如此限制在长度)并解析它

Another option is to use a String instead (multiple Strings are not so limited in length) and parse it.

编辑:

我建议你写在人类可读的形式的数据,如

I suggest you write the data in a human readable form like

Cm7 Bm6 Am7 ....
Dm8 Cm7 Dm8 ....
....

这篇关于错误:code过大的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆