Java 错误:代码太大
我正在制作一个应用程序,它可以在其中查找数据库(我目前正在构建的数据库)。当我收到错误时,我已经完成了超过10/12的工作:代码太大作为Gradle构建消息 java文件几乎只是一个“数据库”(数据在另一个类中使用) 其形式如下:Java 错误:代码太大,java,android,arrays,database,bytecode,Java,Android,Arrays,Database,Bytecode,我正在制作一个应用程序,它可以在其中查找数据库(我目前正在构建的数据库)。当我收到错误时,我已经完成了超过10/12的工作:代码太大作为Gradle构建消息 java文件几乎只是一个“数据库”(数据在另一个类中使用) 其形式如下: static int[][] mDatabase10 = new int[][]{{1, 0, 0, 0, 11, 22}, {1, 53, 42, 0, 41, 0}, {7, 34, 11, 33, 32, 0}}; 每个阵列中有
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个):
最后有一个函数将请求的数组返回给另一个类
public static int[][] Chordlookup(int chordpart1, int chordpart2){
return dbDatabase[chordpart1-1][chordpart2-1];
}
现在从我在互联网上读到的关于这个问题的理解来看,这与database.java类太大有关。我怎样才能解决这个问题
我愿意接受建议,因为我对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 ....
....
我不知道你想用这些代码做什么,但这看起来不是正确的方法。你能和我们分享一下你想要达到的目标吗?是的,对不起。我会更新这个问题,看看Peter Lawrey的答案。你应该做什么,而不是把整个数据库写在一个类文件中,把它写在一个文本文件中,在数据库中插入语句(每个Android应用程序都可以有自己的数据库)。你可以看看这个:。我会调查的。谢谢,我应该用什么样的文件?关于这一点,我能读到什么吗?@Marshall我会使用文本文件,因为它更容易阅读和维护。您可能会发现使用
扫描仪
是读取中数据的简单方法。谢谢。我来试试
Cm7 Bm6 Am7 ....
Dm8 Cm7 Dm8 ....
....