标签: sugarorm

无法实例化Sugar ORM数据库

我已经将最新版本的android Sugar ORM库导入到eclipse中,并从我的项目中引用了它.我已经添加了以下元标记:

   <meta-data
        android:name="DATABASE"
        android:value="venn_app.db" />
    <meta-data
        android:name="VERSION"
        android:value="7" />
    <meta-data
        android:name="QUERY_LOG"
        android:value="true" />
Run Code Online (Sandbox Code Playgroud)

这是我的POJO对象:

public class Event extends SugarRecord<Event> {

int id;
LatLng latLng = new LatLng(0,0);
String name;
Long startTime = new Long(0);
boolean isSelected = false;
boolean isCheckedIn = false;

public Event(){ }

public Event(int id, String name, LatLng latLng){
    startTime = System.currentTimeMillis(); // divide by 1000 to get seconds
    this.id = id;
    this.latLng = latLng;
    this.name = name;
    isSelected = false;
    isCheckedIn = false;
} …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception sugarorm

4
推荐指数
1
解决办法
5107
查看次数

如何添加两个android:name属性

我目前的AndroidManifest包含Sugar ORM声明如下

<application
    android:name="com.orm.SugarApp"
Run Code Online (Sandbox Code Playgroud)

如他们在http://satyan.github.io/sugar/getting-started.html上的文档中所述.它包含在jar库中.

现在我需要为全局变量添加声明,如此处所示的 需要添加的Android全局变量

application android:name="MyApplication" android:icon="@drawable/icon" android:label="@string/app_name">
Run Code Online (Sandbox Code Playgroud)

到现有的申请部分.但这意味着两个应用程序部分或两个"android:name",这是完全错误的.如何实现这两个应用程序部分的场景

android sugarorm

3
推荐指数
1
解决办法
1268
查看次数

使用SugarORM和Robolectric进行测试

我试图为我的android项目设置测试环境.基本的Robolectric设置完成.我使用了这个很好的教程.如果我在Manifest.xml中注释掉SugarORM,那么所有测试都可以.但如果我想与SugarORM一起使用,我总是会遇到这个错误:

来自com.orm.SugarDb.createDatabase的com.orm.SugarDb.getDomainClasses(SugarDb.java:37)的dalvik.system.DexFile $ DFEnum.hasMoreElements(DexFile.java:239)中的java.lang.NullPointerException(SugarDb.java: 104)位于android.database.sqlite.SQLiteOpenper.getWritableDatabase(SQLiteOpenHelper.java:164)的android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)的com.orm.SugarDb.onCreate(SugarDb.java:100) )com.orm.Database.getDB(Database.java:18)at com.orm.SugarApp.onTerminate(SugarApp.java:16)atg.robolectric.internal.ParallelUniverse.tearDownApplication(ParallelUniverse.java:133)at org .robolectric.RobolectricTestRunner $ 2.evaluate(RobolectricTestRunner.java:246)org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)org.junit.runners.ParentRunner $ 3.run(ParentRunner.java:290)org.junit.runners.在org.junit的org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:58)的org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)中的ParentRunner $ 1.schedule(ParentRunner.java:71) .runners.ParentRunner $ 2.evaluate(ParentRunner.java:268)org.robolectric.RobolectricTestRunner $ 1.evaluate(RobolectricTestRunner.java:158)org.junit.runners.ParentRunner.run(ParentRunner.java:363)at org. junit.runner.JUnitCore.run(JUnitCore.java:137)at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)57)org.junit.runners.ParentRunner $ 3.run(ParentRunner.java:290)org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:71)at org.junit.runners.ParentRunner.runChildren(ParentRunner) .java:288)org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:58)org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:268)at org.robolectric.RobolectricTestRunner $ 1.evaluate (RobolectricTestRunner.java:158)org.junit.runners.ParentRunner.run(ParentRunner.java:363)位于com.intellij.rt.execution的org.junit.runner.JUnitCore.run(JUnitCore.java:137). application.AppMain.main(AppMain.java:134)57)org.junit.runners.ParentRunner $ 3.run(ParentRunner.java:290)org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:71)at org.junit.runners.ParentRunner.runChildren(ParentRunner) .java:288)org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:58)org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:268)at org.robolectric.RobolectricTestRunner $ 1.evaluate (RobolectricTestRunner.java:158)org.junit.runners.ParentRunner.run(ParentRunner.java:363)位于com.intellij.rt.execution的org.junit.runner.JUnitCore.run(JUnitCore.java:137). application.AppMain.main(AppMain.java:134)ParentRunner.access $ 000(ParentRunner.java:58)org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:268)位于org.junit的org.robolectric.RobolectricTestRunner $ 1.evaluate(RobolectricTestRunner.java:158). runners.ParentRunner.run(ParentRunner.java:363)atg.junit.runner.JUnitCore.run(JUnitCore.java:137)at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)ParentRunner.access $ 000(ParentRunner.java:58)org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:268)位于org.junit的org.robolectric.RobolectricTestRunner $ 1.evaluate(RobolectricTestRunner.java:158). runners.ParentRunner.run(ParentRunner.java:363)atg.junit.runner.JUnitCore.run(JUnitCore.java:137)at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

每个人都有同样的问题吗?

编辑

也许是这样,因为Robolectric在测试后关机并且还没有完成.我的TestClass

@RunWith(RobolectricTestRunner.class)
@Config(manifest="./src/main/AndroidManifest.xml",emulateSdk=18)
public class …
Run Code Online (Sandbox Code Playgroud)

testing android robolectric sugarorm

3
推荐指数
1
解决办法
1384
查看次数

Sugar ORM在init上阻止UI线程

我在我的Android 5.1应用程序中使用版本1.3.1中的Sugar ORM.

今天,我注意到在安装我的应用程序后,Sugar ORM阻止UI线程初始化大约2.4秒.

有没有办法在后台线程中完成这些工作以改善UX?

04-07 20:14:42.179  10407-10407/com.sample.app I/Sugar? on create
04-07 20:14:44.354  10407-10407/com.sample.app I/Sugar? domain class
04-07 20:14:44.358  10407-10407/com.sample.app I/Sugar? domain class
04-07 20:14:44.358  10407-10407/com.sample.app I/Sugar? domain class
04-07 20:14:44.360  10407-10407/com.sample.app I/Sugar? domain class
04-07 20:14:44.362  10407-10407/com.sample.app I/Sugar? domain class
04-07 20:14:44.365  10407-10407/com.sample.app I/Sugar? domain class
04-07 20:14:44.366  10407-10407/com.sample.app I/Sugar? domain class
04-07 20:14:44.368  10407-10407/com.sample.app I/Sugar? domain class
04-07 20:14:44.370  10407-10407/com.sample.app I/Sugar? domain class
04-07 20:14:44.372  10407-10407/com.sample.app I/Sugar? domain class
04-07 20:14:44.373  10407-10407/com.sample.app I/Sugar? domain class
04-07 20:14:44.375 …
Run Code Online (Sandbox Code Playgroud)

performance orm multithreading android sugarorm

3
推荐指数
1
解决办法
1354
查看次数

SugarORM + Kotlin:未经参考的参考"listAll"

我正在尝试将华丽的Kotlin和SugarORM结合使用以进行Android开发,并让我的模型设置如下:

import com.orm.SugarRecord

public class Contact : SugarRecord<Contact>() {
    var name : String = ""
    var phoneNumber : String = ""
    var info : String? = null
}
Run Code Online (Sandbox Code Playgroud)

当然我也改变了AndroidManifest.xml:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    tools:replace="android:icon"
    android:name="com.orm.SugarApp">

    <meta-data android:name="DATABASE" android:value="database.db" />
    <meta-data android:name="VERSION" android:value="1" />
    <meta-data android:name="QUERY_LOG" android:value="true" />
    <meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="/* same as package attribute on manifest element */" />

    <activity>…</activity>
</application>
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试使用里面的模型MainActivity.kt:

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    val contacts = Contact.listAll(javaClass(Contact))
    // or val …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-studio sugarorm

3
推荐指数
1
解决办法
967
查看次数

如何在SugarORM中设置主键

我是第一次使用SugarORM,我有一个简单的问题.如何将一个实体设置为主键?例如,我需要这样的东西:

public class Student{
    @PrimaryKey
    private String studentId;
    private String name;
}
Run Code Online (Sandbox Code Playgroud)

可能吗?谢谢.

android primary-key sugarorm

3
推荐指数
1
解决办法
3660
查看次数

开始使用sugarORM 1.4

我正在试图找出如何使用sugarORM(1.4版本,使用Gradle导入).

我有一个带public String name字段的简单对象,等等.

我使用该名称构造该简单对象并将其保存为此(使用TEST_TYPE随机字符串):

    CustomObject type = new CustomObject(TEST_TYPE);
    long l=type.save();
    Toast.makeText(this, "Type ajouté ! id="+l, Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)

我的日志现在显示id = 14,所以我认为写入是正常的.

但是当我想阅读时,没有任何意义:

  • CustomObject.count(CustomObject.class) 返回14
  • CustomObject.findById(CustomObject.class, 2) 返回null
  • CustomObject.first(CustomObject.class) 返回null
  • CustomObject.find(LifeEventType.class, "NAME = ?", new String[]{TEST_TYPE}) 返回null

我不知道它是否相关,但是我在警告日志中得到了这个例外:( java.lang.NoSuchMethodException: <init> at com.orm.SugarRecord.find(SugarRecord.java:196)对于像我这样的菜鸟而言代码太高级了......)

我究竟做错了什么 ?

android sugarorm

3
推荐指数
1
解决办法
1349
查看次数

来自多个表的SugarORM查询?

我正在将SugarORM用于我的Android应用程序。在我的项目中,我有几个表,我想知道是否有办法将它们连接到另一个具有多个表中的列的类对象中?

如果是,那么示例将非常有帮助。

sqlite android multi-table sugarorm

3
推荐指数
1
解决办法
1478
查看次数

SugarORM + Multidex

我下载了SugarORM源代码以将其用作库模块(因此我可以覆盖应用程序的"attachBaseContext"方法.

我已经看到了SugarORM和multidex的问题,问题是我无法弄清楚如何将MultiDex库引用到我的新SugarORM库模块中.有人可以帮我解决这个问题吗?

错误页面截图

android sugarorm android-multidex

3
推荐指数
1
解决办法
355
查看次数

如何在Sugar ORM数据库中保存图像?

我想用糖orm在我的数据库中保存图像.我怎样才能做到这一点?

我有下一个代码来尝试保存它:

实体:

import android.graphics.drawable.Drawable;
import android.media.Image;

import com.orm.SugarRecord;
import com.orm.dsl.NotNull;
import com.orm.dsl.Unique;

public class Exercise extends SugarRecord {

    @Unique
    protected String name;
    @NotNull
    protected String description;
    protected Drawable image;
    protected String video;

    public Exercise() {
    }

    public Exercise(String name, String description, Drawable image, String video) {
        this.name = name;
        this.description = description;
        this.image = image;
        this.video = video;
    }

    /**
     * @return String name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name
     */
    public void …
Run Code Online (Sandbox Code Playgroud)

android sugarorm

3
推荐指数
1
解决办法
1460
查看次数