- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有这门课
public class DaoMaster extends AbstractDaoMaster {
public static final int SCHEMA_VERSION = 1605131322;
/** Creates underlying database table using DAOs. */
public static void createAllTables(SQLiteDatabase db, boolean ifNotExists) {
ApplicationConfigDao.createTable(db, ifNotExists);
RequestCacheDao.createTable(db, ifNotExists);
}
/** Drops underlying database table using DAOs. */
public static void dropAllTables(SQLiteDatabase db, boolean ifExists) {
ApplicationConfigDao.dropTable(db, ifExists);
RequestCacheDao.dropTable(db, ifExists);
}
public static abstract class OpenHelper extends SQLiteOpenHelper {
public OpenHelper(Context context, String name, CursorFactory factory) {
super(context, name, factory, SCHEMA_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION);
createAllTables(db, false);
}
}
/** WARNING: Drops all table on Upgrade! Use only during development. */
public static class DevOpenHelper extends OpenHelper {
public DevOpenHelper(Context context, String name, CursorFactory factory) {
super(context, name, factory);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
dropAllTables(db, true);
onCreate(db);
}
}
public DaoMaster(SQLiteDatabase db) {
super(db, SCHEMA_VERSION);
registerDaoClass(ApplicationConfigDao.class);
registerDaoClass(RequestCacheDao.class);
}
public DaoSession newSession() {
return new DaoSession(db, IdentityScopeType.Session, daoConfigMap);
}
public DaoSession newSession(IdentityScopeType type) {
return new DaoSession(db, type, daoConfigMap);
}
}
然后是另一个类
更新正如你们中的一些人所指出的,我的命名约定似乎很糟糕,这是一个多么愚蠢的基本错误,所以我将它们更新为以下内容
public class DbHelper {
public static final String LOGIN_DATA_PREFIX = "LOGIN_DATA_";
public DaoMaster DAOMaster;
public DaoSession DAOSession;
public DaoMaster.OpenHelper openHelper;
public SQLiteDatabase SQLiteDb;
private Context context;
public static class CONSTANT {
public static String DB_FILE_NAME = "app.db";
/* Define all DAO Property Constant Here */
public static class APPLICATION_CONFIG {
public static String DAO_NAME = "applicationconfig";
public static String PROPERTY_ID = "Id";
public static String PROPERTY_KEY = "Key";
public static String PROPERTY_VALUE = "Value";
}
public static class REQUEST_CACHE{
public static String DAO_NAME = "requestcache";
public static String PROPERTY_URL = "Url";
public static String PROPERTY_METHOD = "Method";
public static String PROPERTY_PARAM = "Param";
public static String PROPERTY_ID = "Id";
}
//...
}
public class DAOWrapper {
private DaoSession session;
/* Load all DAO Here */
public ApplicationConfigDao ApplicationConfig;
public RequestCacheDao RequestCache;
// ...
public DAOWrapper(DaoSession session){
this.session = session;
/* Init all DAO Here */
this.ApplicationConfig = this.session.getApplicationConfigDao();
this.RequestCache = this.session.getRequestCacheDao();
// ...
}
}
public DAOWrapper DAO;
public DbHelper(Context context){
this.context = context;
this.openHelper = new DaoMaster.DevOpenHelper(this.context, CONSTANT.DB_FILE_NAME, null);
this.SQLiteDb = this.openHelper.getWritableDatabase();
this.DAOMaster = new DaoMaster(this.SQLiteDb);
this.DAOSession = this.DAOMaster.newSession();
this.DAO = new DAOWrapper(this.DAOSession);
}
...
}
但还是失败
然后初始化类
this.Db = new DbHelper(this.getApplicationContext());
但是在创建实例DaoMaster.DevOpenHelper的过程中抛出错误,据说找不到类DevOpenHelper,我的代码有什么问题吗?
更新错误控制台
5-15 23:22:31.313 20424-20424/com.itp.android.suitetreatadmin E/dalvikvm﹕ Could not find class 'com.itp.android.suitetreatadmin.dao.DaoMaster$DevOpenHelper', referenced from method com.itp.android.suitetreatadmin.DbHelper.<init>
05-15 23:22:44.190 20424-20424/com.itp.android.suitetreatadmin E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.itp.android.suitetreatadmin, PID: 20424
java.lang.NoClassDefFoundError: com.itp.android.suitetreatadmin.dao.DaoMaster$DevOpenHelper
at com.itp.android.suitetreatadmin.DbHelper.<init>(DbHelper.java:86)
at com.itp.android.suitetreatadmin.App.onCreate(App.java:108)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4328)
at android.app.ActivityThread.access$1500(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
我知道有一些类似的问题,但我认为这是个案问题,
感谢您的帮助。
最佳答案
在 DbHelper 类中,你不能给对象名和类名一样,所以你必须像这样更改对象名
DaoMaster daoMaster;
DaoSession daoSession;
关于java - 解决 java.lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37246601/
在 Tomcat 6/Ubuntu 12.04 上启动 Grails 2.1.0 应用程序时出现以下错误。 Error 500 - Internal Server Error. groovy.lang
在运行 Storm 拓扑时,我收到此错误。拓扑完美运行 5 分钟,没有任何错误,然后失败。我正在使用 Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS as 300 sec i
我有一个 jsp 代码在其中一台机器上运行良好。但是当我复制到另一台机器时,我得到了这个 no such method found 异常。我是 Spring 的新手。有人可以解释我错过了什么吗? 以下
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我的代码在下面给出了一个错误; Exception in thread "main" java.lang.NoSuchMethodError: com/myApp/Client.cypherCBC(L
我正在尝试一个 Restful web 服务示例,所以当我要访问 url 时,我遇到了异常 java.lang.NoSuchMethodError: jersey.repackaged.com.goo
我正在将一个 Spring web 项目转换为一个 Maven 项目,但我收到了这个错误: java.lang.NoSuchMethodError: org.jboss.logging.Logger.
在我的项目中,我有一个像这样的枚举: public enum MyEnum { FIRST(1), SECOND(2); private int value; private MyEnum(int v
我创建了这个简单的示例,用于读取 Linux 正常运行时间: public String getMachineUptime() throws IOException { String[] di
我正在使用 Eclipse,并且正在使用 Java。我的目标是使用 bogoSort 方法对 vector 进行排序在一个 vector (vectorExample)中适应我的 vector 类型,
我正在运行以下查询。它显示一条错误消息。如何解决这个错误? ListrouteList=null; List companyList = session.createS
我有以下模型类: @Entity @Table(name="user_content") @org.hibernate.annotations.NamedQueries({ @org.
我有那个错误。这是我的代码: GmailSettingsService service = new GmailSettingsService(APPLICATION_NAME, DOMAIN_NAME
实际上我在执行我的java程序时遇到了下面提到的错误 Exception in thread "pool-1-thread-1" java.lang.ClassCastException: jav
java.lang.ClassCastException: java.lang.Float cannot be cast to java.lang.String 我在以下代码中遇到此异常: Strin
我正在尝试从 linkedhashset 中检索随机元素。下面是我的代码,但它每次都给我异常。 private static void generateRandomUserId(Set userIds
我已经完成了 Android 中的代码: List spinnerArray = new ArrayList(); for (int i = 0; i item = (LinkedTreeMap)
这个问题已经有答案了: Explanation of ClassCastException in Java (12 个回答) 已关闭 6 年前。 我已经编写了 java 到 Json 的代码,同时从页
这个问题在这里已经有了答案: ClassCastException java.lang.Long cannot be cast to clojure.lang.IFn (4 个答案) 关闭 6 年前
我在运行时遇到问题来编译这段代码,这给我一个错误,java.lang.Integer 无法转换为 Java.lang.Double。如果有人帮助我更正此代码,我将非常高兴 double x; pu
我是一名优秀的程序员,十分优秀!