Error: Code too large
Error: Code too large
我正在制作一个应用程序,它可以在数据库(我目前正在构建的)上查找。当我收到 error:code too large 作为 Gradle 构建消息时,我已经完成了超过 10/12。
java 文件几乎只是一个 "database"(数据在另一个 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个):
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...
终于有函数可以return请求数组到另一个class。
public static int[][] Chordlookup(int chordpart1, int chordpart2){
return dbDatabase[chordpart1-1][chordpart2-1];
}
现在从网上看了一下这个问题的理解,跟database.java class太大有关。我该如何解决?
我乐于接受建议,因为我对 java...
的经验不多
编辑:
对代码作用的一些描述:
每个mDatabase都是一个和弦(例如Cm7)
每组 6 个整数是演奏该和弦的位置:
{1, 0, 0, 0, 11, 22}
有些和弦可能有其中之一,有些和弦有更多。
然后在 dbDatabase 中每个块(mDatabaseX0 到 mDatabaseX3a)都是一个根(如 A、B、C、D、E、F、G)
代码限制为 64K 字节,当您初始化数组时,您可以在代码中执行此操作。
最好的选择是将数据存储在文件中并读取您需要的数据。注:该文件可以随应用一起部署,直接从存档中获取。
另一种选择是使用字符串代替(多个字符串的长度不受限制)并解析它。
编辑:
我建议您以人类可读的形式编写数据,例如
Cm7 Bm6 Am7 ....
Dm8 Cm7 Dm8 ....
....
我正在制作一个应用程序,它可以在数据库(我目前正在构建的)上查找。当我收到 error:code too large 作为 Gradle 构建消息时,我已经完成了超过 10/12。
java 文件几乎只是一个 "database"(数据在另一个 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个):
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...
终于有函数可以return请求数组到另一个class。
public static int[][] Chordlookup(int chordpart1, int chordpart2){
return dbDatabase[chordpart1-1][chordpart2-1];
}
现在从网上看了一下这个问题的理解,跟database.java class太大有关。我该如何解决?
我乐于接受建议,因为我对 java...
的经验不多编辑:
对代码作用的一些描述:
每个mDatabase都是一个和弦(例如Cm7) 每组 6 个整数是演奏该和弦的位置: {1, 0, 0, 0, 11, 22} 有些和弦可能有其中之一,有些和弦有更多。
然后在 dbDatabase 中每个块(mDatabaseX0 到 mDatabaseX3a)都是一个根(如 A、B、C、D、E、F、G)
代码限制为 64K 字节,当您初始化数组时,您可以在代码中执行此操作。
最好的选择是将数据存储在文件中并读取您需要的数据。注:该文件可以随应用一起部署,直接从存档中获取。
另一种选择是使用字符串代替(多个字符串的长度不受限制)并解析它。
编辑:
我建议您以人类可读的形式编写数据,例如
Cm7 Bm6 Am7 ....
Dm8 Cm7 Dm8 ....
....