当前位置: 首页 > 知识库问答 >
问题:

Sugar ORM和Android

羊浩广
2023-03-14

在遵循文档之后,我成功地添加了JAR并实现了示例代码:

public class Book extends SugarRecord{
   String title;
   String edition;

   public Book(){

   }
   public Book(String title, String edition){
       this.title = title;
       this.edition = edition;
   }
}

我的主要活动是:

public class MainActivity extends Activity implements View.OnClickListener {
  Button btnAdd;
  EditText txtedition, txttitle;



  @Override
  protected void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      btnAdd = (Button) findViewById(R.id.btnadd);
      btnAdd.setOnClickListener(this);



      txtedition = (EditText) findViewById(R.id.txtedition);
      txttitle = (EditText) findViewById(R.id.txttitle);

  }

  @Override
  public void onClick(View v) {

      String edition = txtedition.getText().toString();
      String title = txttitle.getText().toString();
      switch (v.getId()) {
          case R.id.btnadd:
              Book book = new Book(title, edition);
              book.save();
              break;

      }
  }
}

我的应用程序成功构建,但当我按下“添加”按钮时,出现以下异常:

FATAL EXCEPTION: main Process:com.example.agds.demo, PID: 7939android.database.sqlite.SQLiteException: no that table: BOOK(code 1):,在编译时:INSERT OR REPLACE INTO BOOK(TITLE, ID, EDITION)值 (?,?,?) ################################################################# 错误代码: 1(SQLITE_ERROR)Casted By: SQL(query)error or缺少数据库。(no that table: BOOK(code 1):,在编译时:INSERT OR REPLACE INTO BOOK(TITLE, ID, EDITION)值 (?,?,?))################################################################# 在android.database.sqlite.SQLiteCcom.orm.准备声明(本机方法)在ecord.saveSQLiteCecord.java:360准备声明(SQLiteCcom.example.agds.demo.)在ctivity.onSQLiteCctivity.java:49(SQLiteCandroid.view.)在iew.performSQLiteSiew.java:5702(SQLiteSandroid.widget.)在android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:59)在android.database.sqlite.SQLite语句.(SQLiteStatement.java:31)在android.database.sqlite.SQeDatabase.insert在onnection.nativeSugarRandroid.database.sqlite.(SugarRonnection.acquire)在onnection.java:1058MainAandroid.database.sqlite.点击(MainAonnection.prepare)在onnection.java:623Vandroid.database.sqlite.点击(Vession.prepare)在ession.java:588TextView. performClick(TextView. java: 10888)在android. os. Handler. handleCallback(Handler. java: 739)在android. os. Handler.调度消息(Handler. java: 95)在android. view.查看$PerformClick. run(View. java: 22541)

有什么建议吗?

共有2个答案

曾云
2023-03-14

请注意,如果您在Android Studio中打开了Instant Run,Sugar将无法工作(至少它不会创建新表)。

柏高丽
2023-03-14

您是否已将这些元数据添加到您的AndroidManifest中

<meta-data android:name="DATABASE" android:value="sugar_example.db" />
<meta-data android:name="VERSION" android:value="2" />
<meta-data android:name="QUERY_LOG" android:value="true" />
<meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.example.yourmodels" />

另外,把这个放在你的

android:name="com.orm.SugarApp"

这是库中的一个应用程序类。

https://github.com/chennaione/sugar/blob/master/library/src/main/java/com/orm/SugarApp.java

或者,如果您已经有了自己的应用程序类,可以对其进行扩展。

public class YourApp extends SugarApp {
}

 类似资料:
  • 根据本教程,我正在使用改造和GSON将JSON序列化到POJO中。一切都正常工作。为了将实例保存到SQLite数据库中,我使用了糖ORM。我的POJO有字段-整数id。 Sugar ORM要求整数id应为Long。我说“好的”,然后说了很长时间。当我运行应用程序时,会出现以下错误: 01-18 06:03:44.436 4498-4498/uz.cp.retrofitsandboxE/Androi

  • 一个非常简单的应用程序,API level 24(Android 7.0),试图在实际物理设备上的唯一活动中加载网络视图,在日志中给出以下信息并停止应用程序: 和 和 怎么回事?某种版本/依赖性问题?如何纠正? 用于WebView的XML: WebView代码: 完整项目:https://github.com/qabi/webviewtest

  • 问题内容: 我已经开发了一个桌面应用程序,允许用户从手机中提取图像。 当我第一次启动该项目时,我的Android正在运行Gingerbread。当我通过USB将手机插入笔记本电脑时,它会显示为“具有可移动存储设备”。因此,JFileChooser会选择它。 但是,我最近将手机的操作系统升级为Icecream,它现在作为“便携式设备”显示在桌面上。这是JFileChooser看不到的东西吗? 有没有

  • 问题内容: 两者之间有很大的区别,最好使用哪一个? 问题答案: :Apache的子类,配置了合理的默认设置和Android的注册方案,并允许用户添加类。该客户端处理cookie,但默认情况下不保留它们。要保留Cookie,只需将Cookie存储添加到 [ API ]

  • 我有一个Android应用程序,我正在尝试添加DNS SRV记录检测。我知道这是可能的,因为我已经安装了DNS查找等应用程序,它运行得很好。 我正在使用dnsjava,这段代码作为独立的java应用程序在我的机器上运行得很好,但是当我在我的Android设备上运行它时,我只是得到“错误!”消息: 知道为什么这没用吗?

  • 我现在正式对这两个显式元素之间的区别感到困惑 我以为只使用Google Play就会过滤掉不属于支持屏幕列表的设备。在这些设备上的搜索结果中不会显示该应用程序。 谁能给我解释一下自然语言的区别。不幸的是,我没有发现谷歌的文档那么清晰 干杯

  • 本文向大家介绍Android 中clipToPadding 和 clipChildren区别和作用,包括了Android 中clipToPadding 和 clipChildren区别和作用的使用技巧和注意事项,需要的朋友参考一下 Android 中clipToPadding 和 clipChildren区别和作用 Android 关于 clipToPadding 和 clipChildren区别

  • 我开始使用Intellij Idea为Android开发应用程序,因为它是去年的首选IDE。两个IDE:Intellij Idea 1的致命错误让我大吃一惊。我创建了自定义视图: 然后,我试着在Idea的UI设计器中看到结果: null 更新的答案:因为我的名声很小,所以我不能回答我自己的问题,所以回答问题:我的自定义视图在com.example.customview.ImageCustomVie