Android:代码行为疯狂

标签 android eclipse debugging

我在尝试在 eclipse 上为 android 开发时遇到了一个非常奇怪的问题

我的程序总是返回无意义的语句,所以我尝试调试它。

现在我明白问题出在哪里了...... ...代码的行为真的很疯狂——这绝对不合逻辑

这是我的代码:

ArrayList<String[]> formatedVerses = readAndSplitDatabaseFile(database, books);

if (formatedVerses.size() < 1) { // check if readAndSplitDatabaseFile worked
    createDatabase(database, false); // if not. the database wasnt initialized
    formatedVerses = readAndSplitDatabaseFile(database, books); // try again 
}

return formatedVerses;

基本上我创建了这个 ArrayList

但是当我调试时,它不只是从上到下遍历代码,它会进行奇怪的不合逻辑的跳跃

调试器到达行:

ArrayList<String[]> formatedVerses = readAndSplitDatabaseFile(database, books);

然后跳转到 if 语句(到目前为止还不错)

if (formatedVerses.size() < 1) {

但是“formatedVerses.size() < 1”是错误的,所以它应该跳过 if block

但调试器不仅跳入 if block ,而且实际上跳入 block 的第二行:

formatedVerses = readAndSplitDatabaseFile(database, books);

这毫无意义。

我觉得有人在跟我开玩笑。

我就是想不通这个......

我也试过重构代码... 但它只会变得更奇怪。

我也尝试过其他实现。例如像这样:

if (formatedVerses.size() < 1) {
return array1;
} else{
doSomethingElse();
return array2;
}

在这种情况下,它会跳转到 if block 的 true 语句

 return array1;

然后,当我点击下一步时,它实际上从那一行跳到 else block 内的 return array2 行,同时完全省略 doSomethingElse()

有人有什么想法吗? 因为我现在要疯了...

最佳答案

通常当我看到这样的行为时,是因为我没有运行我认为我正在运行的代码。我没有做过Android开发,所以我不能具体说,但是你是否勾选了项目菜单下的“自动构建”?我发现这可以大大减少我看到这种行为的次数。

您是否尝试过清理代码并进行完整的重建?您是在 Eclipse 之外还是在远程设备上运行它?如果在远程设备上,您是否已将代码发布到该设备?

正如我所说,我没有做过任何 Android 开发,所以从 Andriod 开发的角​​度来看,其中一些问题似乎是显而易见的。

希望这些想法有所帮助。

关于Android:代码行为疯狂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6739078/

相关文章:

java.lang.IllegalStateException : Could not execute method for android:onClick. 应用程序崩溃

Android Studio 更新 3.0.1 使一切变得微小

java - 如何在 Android native C 中获取 APK signing 签名?

android - 最佳测试 Android 设备?

eclipse - 使用eclipse时如何在本地和SVN中布局文件夹

android - 获取/设置安卓 IPv4 地址

Eclipse 的 'syso' 快捷方式不起作用?

google-chrome - Chrome 77 远程设备调试问题

visual-studio - 如何更改 XSLT 调试器的输入文件?

php - 正在运行的 PHP 进程的当前事件