Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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
Android无法实例化activity CompentInfo Java.lang.ClassNotFoundException_Java_Android_Database_Ormlite - Fatal编程技术网

Android无法实例化activity CompentInfo Java.lang.ClassNotFoundException

Android无法实例化activity CompentInfo Java.lang.ClassNotFoundException,java,android,database,ormlite,Java,Android,Database,Ormlite,我做这个测试项目是为了尝试使用ormlite将数据库导出到csv文件。因此,我搜索了这个错误,并尝试了其他帖子中建议的所有内容,所有这些都导致了相同的错误: 02-17 14:33:24.810: E/AndroidRuntime(14351): FATAL EXCEPTION: main 02-17 14:33:24.810: E/AndroidRuntime(14351): java.lang.RuntimeException: Unable to instantiate activity

我做这个测试项目是为了尝试使用ormlite将数据库导出到csv文件。因此,我搜索了这个错误,并尝试了其他帖子中建议的所有内容,所有这些都导致了相同的错误:

02-17 14:33:24.810: E/AndroidRuntime(14351): FATAL EXCEPTION: main
02-17 14:33:24.810: E/AndroidRuntime(14351): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.webs.dimensiongamesculpts.android_ormlite_sample_master/com.webs.dimensiongamesculpts.android_ormlite_sample_master.main}: java.lang.ClassNotFoundException: com.webs.dimensiongamesculpts.android_ormlite_sample_master.main in loader dalvik.system.PathClassLoader[/data/app/com.webs.dimensiongamesculpts.android_ormlite_sample_master-2.apk]
02-17 14:33:24.810: E/AndroidRuntime(14351):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1618)
02-17 14:33:24.810: E/AndroidRuntime(14351):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1716)
02-17 14:33:24.810: E/AndroidRuntime(14351):    at android.app.ActivityThread.access$1500(ActivityThread.java:124)
02-17 14:33:24.810: E/AndroidRuntime(14351):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:968)
02-17 14:33:24.810: E/AndroidRuntime(14351):    at android.os.Handler.dispatchMessage(Handler.java:99)
02-17 14:33:24.810: E/AndroidRuntime(14351):    at android.os.Looper.loop(Looper.java:130)
02-17 14:33:24.810: E/AndroidRuntime(14351):    at android.app.ActivityThread.main(ActivityThread.java:3806)
02-17 14:33:24.810: E/AndroidRuntime(14351):    at java.lang.reflect.Method.invokeNative(Native Method)
02-17 14:33:24.810: E/AndroidRuntime(14351):    at java.lang.reflect.Method.invoke(Method.java:507)
02-17 14:33:24.810: E/AndroidRuntime(14351):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-17 14:33:24.810: E/AndroidRuntime(14351):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-17 14:33:24.810: E/AndroidRuntime(14351):    at dalvik.system.NativeStart.main(Native Method)
02-17 14:33:24.810: E/AndroidRuntime(14351): Caused by: java.lang.ClassNotFoundException: com.webs.dimensiongamesculpts.android_ormlite_sample_master.main in loader dalvik.system.PathClassLoader[/data/app/com.webs.dimensiongamesculpts.android_ormlite_sample_master-2.apk]
02-17 14:33:24.810: E/AndroidRuntime(14351):    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
02-17 14:33:24.810: E/AndroidRuntime(14351):    at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
02-17 14:33:24.810: E/AndroidRuntime(14351):    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
02-17 14:33:24.810: E/AndroidRuntime(14351):    at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
02-17 14:33:24.810: E/AndroidRuntime(14351):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1610)
02-17 14:33:24.810: E/AndroidRuntime(14351):    ... 11 more
我在res的layout文件夹中有一个main.xml。我所有的外部jar都在libs文件夹中

以下是我的Main.java文件:

package com.webs.dimensiongamesculpts.android_ormlite_sample_master;

import com.webs.dimensiongamesculpts.android_ormlite_sample_master.R;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class Main extends Activity {

    TextView txtOutput;
    Repo repo;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        txtOutput = (TextView) findViewById(R.id.output);

        repo = new Repo(this);

        User user = new User("Bruno", "Shadow", "MySecretPassword",
                "email@gmail.com");

        txtOutput.append("Creating User: " + user.getAlias());
        user.save(repo);
        txtOutput.append("\nUser: " + user.getAlias()
                + " created successfully!");
        user = repo.Users.getByUsername("Shadow");
        txtOutput.append("\nUser: " + user.getAlias()
                + " retrieved successfully!");
        user.delete(repo);
        txtOutput.append("\nUser: " + user.getAlias()
                + " deleted successfully!");

    }
}
这是我的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.webs.dimensiongamesculpts.android_ormlite_sample_master"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="19" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".main"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>
以下是DatabaseHelper.java:

package com.webs.dimensiongamesculpts.android_ormlite_sample_master;

import java.io.IOException;
import java.sql.SQLException;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

import com.webs.dimensiongamesculpts.android_ormlite_sample_master.User;
import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
import com.j256.ormlite.dao.BaseDaoImpl;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.dao.DaoManager;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils;

public class DatabaseHelper extends OrmLiteSqliteOpenHelper {

    private static final String DATABASE_NAME = "db.sqlite";
    private static final int DATABASE_VERSION = 1;

    private Dao<User, String> userDao = null;


    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);

        DatabaseInitializer initializer = new DatabaseInitializer(context);
        try {
            initializer.createDatabase();
            initializer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }


    @Override
    public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) {
        try {
            Log.i(DatabaseHelper.class.getName(), "onCreate");

            TableUtils.createTable(connectionSource, User.class);

        } catch (SQLException e) {
            Log.e(DatabaseHelper.class.getName(), "Can't create database", e);
            throw new RuntimeException(e);
        }
    }


    @Override
    public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int oldVersion, int newVersion) {
        try {
            Log.i(DatabaseHelper.class.getName(), "onUpgrade");

            TableUtils.dropTable(connectionSource, User.class, true);

            onCreate(db);
        } catch (SQLException e) {
            Log.e(DatabaseHelper.class.getName(), "Can't drop databases", e);
            throw new RuntimeException(e);
        }
    }


    public Dao<User, String> getUserDao() throws SQLException {
        if (userDao == null) {
            userDao = DaoManager.createDao(getConnectionSource(), User.class);
        }
        return userDao;
    }



    @Override
    public void close() {
        super.close();
        userDao = null;
    }
}
package com.webs.dimensiongamesculpts.android\u ormlite\u sample\u master;
导入java.io.IOException;
导入java.sql.SQLException;
导入android.content.Context;
导入android.database.sqlite.SQLiteDatabase;
导入android.util.Log;
导入com.webs.dimensiongamesculpts.android_ormlite_sample_master.User;
导入com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
导入com.j256.ormlite.dao.BaseDaoImpl;
导入com.j256.ormlite.dao.dao;
导入com.j256.ormlite.dao.DaoManager;
导入com.j256.ormlite.support.ConnectionSource;
导入com.j256.ormlite.table.TableUtils;
公共类DatabaseHelper扩展了OrmLiteSqliteOpenHelper{
私有静态最终字符串数据库\u NAME=“db.sqlite”;
私有静态最终int数据库_VERSION=1;
私有Dao userDao=null;
公共数据库助手(上下文){
super(上下文、数据库名称、null、数据库版本);
DatabaseInitializer initializer=新的DatabaseInitializer(上下文);
试一试{
initializer.createDatabase();
初始化器.close();
}捕获(IOE异常){
e、 printStackTrace();
}
}
@凌驾
public void onCreate(SQLiteDatabase db,ConnectionSource ConnectionSource){
试一试{
Log.i(DatabaseHelper.class.getName(),“onCreate”);
createTable(connectionSource,User.class);
}捕获(SQLE异常){
Log.e(DatabaseHelper.class.getName(),“无法创建数据库”,e);
抛出新的运行时异常(e);
}
}
@凌驾
public void onUpgrade(SQLiteDatabase db、ConnectionSource ConnectionSource、int oldVersion、int newVersion){
试一试{
Log.i(DatabaseHelper.class.getName(),“onUpgrade”);
TableUtils.dropTable(connectionSource,User.class,true);
onCreate(db);
}捕获(SQLE异常){
Log.e(DatabaseHelper.class.getName(),“无法删除数据库”,e);
抛出新的运行时异常(e);
}
}
公共Dao getUserDao()引发SQLException{
if(userDao==null){
userDao=DaoManager.createDao(getConnectionSource(),User.class);
}
返回userDao;
}
@凌驾
公众假期结束(){
super.close();
userDao=null;
}
}

资本化很重要。在清单中将
android:name=“.main”
更改为
android:name=“.main”
将活动名称更改为.main而不是.main

谢谢,这很有帮助,但现在我遇到了一个新错误,我将用新错误更新帖子这是另一个问题,您在初始化数据库帮助程序时遇到了问题,我建议您将问题保持原样,打开新线程,以便获得有关数据库帮助程序问题的帮助。以下是指向我遇到的下一个错误的链接:您可以向我们显示您的用户类和数据库帮助程序类吗?
package com.webs.dimensiongamesculpts.android_ormlite_sample_master;

import java.io.IOException;
import java.sql.SQLException;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

import com.webs.dimensiongamesculpts.android_ormlite_sample_master.User;
import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
import com.j256.ormlite.dao.BaseDaoImpl;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.dao.DaoManager;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils;

public class DatabaseHelper extends OrmLiteSqliteOpenHelper {

    private static final String DATABASE_NAME = "db.sqlite";
    private static final int DATABASE_VERSION = 1;

    private Dao<User, String> userDao = null;


    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);

        DatabaseInitializer initializer = new DatabaseInitializer(context);
        try {
            initializer.createDatabase();
            initializer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }


    @Override
    public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) {
        try {
            Log.i(DatabaseHelper.class.getName(), "onCreate");

            TableUtils.createTable(connectionSource, User.class);

        } catch (SQLException e) {
            Log.e(DatabaseHelper.class.getName(), "Can't create database", e);
            throw new RuntimeException(e);
        }
    }


    @Override
    public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int oldVersion, int newVersion) {
        try {
            Log.i(DatabaseHelper.class.getName(), "onUpgrade");

            TableUtils.dropTable(connectionSource, User.class, true);

            onCreate(db);
        } catch (SQLException e) {
            Log.e(DatabaseHelper.class.getName(), "Can't drop databases", e);
            throw new RuntimeException(e);
        }
    }


    public Dao<User, String> getUserDao() throws SQLException {
        if (userDao == null) {
            userDao = DaoManager.createDao(getConnectionSource(), User.class);
        }
        return userDao;
    }



    @Override
    public void close() {
        super.close();
        userDao = null;
    }
}