Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我得到这个错误:com.android.internal.os.ZygoteInit$MethodAndArgsCaller_Android_Sqlite_Android Sqlite - Fatal编程技术网

我得到这个错误:com.android.internal.os.ZygoteInit$MethodAndArgsCaller

我得到这个错误:com.android.internal.os.ZygoteInit$MethodAndArgsCaller,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,当我试图在我的android代码的SQLite数据库中插入和选择语句时,就会出现这个错误。有人能告诉我解决这个问题的办法吗 代码: MethodAndArgsCaller告诉您向方法传递了错误的参数。 在这种情况下,您没有将所有必需的参数传递给execSQL() 还要注意,execSQL()不会返回任何值,因此返回true是完全没有用的 我会像这样重写你的方法: public void altaCliente(Clientes c) { SQLiteDatabase db = getRe

当我试图在我的android代码的SQLite数据库中插入和选择语句时,就会出现这个错误。有人能告诉我解决这个问题的办法吗

代码:


MethodAndArgsCaller
告诉您向方法传递了错误的参数。
在这种情况下,您没有将所有必需的参数传递给
execSQL()

还要注意,
execSQL()
不会返回任何值,因此返回true是完全没有用的

我会像这样重写你的方法:

public void altaCliente(Clientes c)
{
    SQLiteDatabase db = getReadableDatabase();
    db.execSQL("INSERT INTO Clientes VALUES ('" + 
       c.getNumero() + "', '" + 
       c.getNombre() + "', '" + 
       c.getAlias() + "', '" + 
       c.getGruPrecioCliente() + "', '" + 
       c.getGruDesCliente() + "', '" +
       c.getGruRegIvaNeg() + "')", 
       null); // This is your missing parameter!
}
这只解决了
方法和argscaller
异常

解决该问题后,可能会出现更多异常

  • 我必须认为您的所有列都是字符串(因为您正在插入所有字符串!)。如果不是,这可能会导致异常
  • 并且您没有尝试手动插入自动增量字段(
    c.getNumero()
    ?)。否则会导致另一个例外
  • 你的句子不包含任何撇号(
    ),因为我看不到任何代码,如果存在的话,你可以将它加倍。如果不使用双撇号,这将导致另一个错误
建议:

使用绑定参数将是更好的解决方案


公共布尔altaCliente(Clientes c){SQLiteDatabase db=getReadableDatabase();db.execSQL(“插入到Clientes值中”(“+c.getNumero()+”,“+c.getNombre()+”,“+c.getAlias()+”,“+c.getgrudresciocliente()+”,“+c.getGruDesCliente()+”,“+c.getGruRegIvaNeg()+”));return true;}这是一个应用程序崩溃的例子,但我确信问题并不存在。我想可能是因为有空字段。看看这个Maria,当它解决了你的问题时,接受一个答案是很明智的。否则,您的帖子将永远保留在
未回答问题队列中。看到答案旁边的白色记号了吗?只要检查一下,它就会变成绿色。
public void altaCliente(Clientes c)
{
    SQLiteDatabase db = getReadableDatabase();
    db.execSQL("INSERT INTO Clientes VALUES ('" + 
       c.getNumero() + "', '" + 
       c.getNombre() + "', '" + 
       c.getAlias() + "', '" + 
       c.getGruPrecioCliente() + "', '" + 
       c.getGruDesCliente() + "', '" +
       c.getGruRegIvaNeg() + "')", 
       null); // This is your missing parameter!
}