Android 没有这样的餐桌糖
在我的Android项目中,Sugar ORM有很多问题 这就是错误:Android 没有这样的餐桌糖,android,sugarorm,Android,Sugarorm,在我的Android项目中,Sugar ORM有很多问题 这就是错误: 05-07 18:50:42.173 7252-7252/net.elinformaticoenganchado.sergio.crossfighters E/AndroidRuntime: FATAL EXCEPTION: main Process: net.elinformaticoenganchado.sergio.crossfighters, PID: 7252 java.lang.Runti
05-07 18:50:42.173 7252-7252/net.elinformaticoenganchado.sergio.crossfighters E/AndroidRuntime: FATAL EXCEPTION: main
Process: net.elinformaticoenganchado.sergio.crossfighters, PID: 7252
java.lang.RuntimeException: Unable to start activity ComponentInfo{net.elinformaticoenganchado.sergio.crossfighters/net.elinformaticoenganchado.sergio.crossfighters.addPlan}: android.database.sqlite.SQLiteException: no such table: PLAN (code 1): , while compiling: INSERT OR REPLACE INTO PLAN(ID,NAME) VALUES (?,?)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: android.database.sqlite.SQLiteException: no such table: PLAN (code 1): , while compiling: INSERT OR REPLACE INTO PLAN(ID,NAME) VALUES (?,?)
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:887)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:498)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469)
at com.orm.SugarRecord.save(SugarRecord.java:280)
at com.orm.SugarRecord.save(SugarRecord.java:416)
at net.elinformaticoenganchado.sergio.crossfighters.addPlan.onCreate(addPlan.java:17)
at android.app.Activity.performCreate(Activity.java:6237)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
当我尝试执行下一个代码时会出现问题:
package net.elinformaticoenganchado.sergio.crossfighters;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import java.util.List;
public class addPlan extends AppCompatActivity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_plan);
Plan plan = new Plan("Plan1");
plan.save();
List<Plan> plans = Plan.listAll(Plan.class);
for (int i = 0; i < plans.size(); i++) {
System.out.println("Plan: " + plans.get(i).getName());
}
}
@Override
public void onClick(View v) {
}
}
package net.elinformaticoenganchado.sergio.crossfighters;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入java.util.List;
公共类addPlan扩展AppCompatActivity实现View.OnClickListener{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u add\u plan);
计划=新计划(“计划1”);
计划。保存();
列表计划=Plan.listAll(Plan.class);
对于(int i=0;i
请我需要帮助,我禁用了即时运行选项,就像每个帖子所说的那样,但它不起作用
谢谢你的帮助
我的android清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.elinformaticoenganchado.sergio.crossfighters"
android:versionCode="1"
android:versionName="1.0">
<application
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:name="com.orm.SugarApp">
<meta-data android:name="DATABASE" android:value="example.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="net.elinformaticoenganchado.sergio.crossfighters" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".chronometer" />
<activity android:name=".addPlan" />
</application>
</manifest>
这个问题可以通过创建一个空的“新版本迁移脚本文件”来解决。 这可以通过以下方式简单实现:
我的版本是1.5如果您对数据库进行了修改,您必须删除应用程序并作为新应用程序安装,或者更改数据库版本并编写一个alter查询。您的应用程序配置正确吗?与中一样,您需要定义一个
SugarApp
类并在清单中设置它@cricket_007是的,我已正确配置。请尝试此anwser@例外就像我告诉你的那样,我试图禁用instant run,但它不起作用:(我有同样的问题。我在版本1.4中使用了sugar orm。在启用instant run的开始,我收到了SQLiteException。禁用此选项并在清单中增加版本后,一切都顺利运行。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.elinformaticoenganchado.sergio.crossfighters"
android:versionCode="1"
android:versionName="1.0">
<application
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:name="com.orm.SugarApp">
<meta-data android:name="DATABASE" android:value="example.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="net.elinformaticoenganchado.sergio.crossfighters" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".chronometer" />
<activity android:name=".addPlan" />
</application>
</manifest>