机器人无法实例活动CompenentInfo抛出java.lang.ClassNotFoundException抛出、机器人、实例、ClassNotFoundException

2023-09-03 23:20:26 作者:鹿晗我男神

我做了这个测试项目中尝试使用ormlite到数据库导出为CSV文件。所以,我已经搜查了这个错误,尝试了所有的其他职位提出的东西,所有产生相同的错误:

  02-17 14:33:24.810:E / AndroidRuntime(14351):致命异常:主要
02-17 14:33:24.810:E / AndroidRuntime(14351):java.lang.RuntimeException的:无法实例活动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装载机dalvik.system.PathClassLoader[/data/app/com.webs.dimensiongamesculpts.android_ormlite_sample_master-2.apk]
02-17 14:33:24.810:E / AndroidRuntime(14351):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1618)
02-17 14:33:24.810:E / AndroidRuntime(14351):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1716)
02-17 14:33:24.810:E / AndroidRuntime(14351):在android.app.ActivityThread.access $ 1500(ActivityThread.java:124)
02-17 14:33:24.810:E / AndroidRuntime(14351):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:968)
02-17 14:33:24.810:E / AndroidRuntime(14351):在android.os.Handler.dispatchMessage(Handler.java:99)
02-17 14:33:24.810:E / AndroidRuntime(14351):在android.os.Looper.loop(Looper.java:130)
02-17 14:33:24.810:E / AndroidRuntime(14351):在android.app.ActivityThread.main(ActivityThread.java:3806)
02-17 14:33:24.810:E / AndroidRuntime(14351):在java.lang.reflect.Method.invokeNative(本机方法)
02-17 14:33:24.810:E / AndroidRuntime(14351):在java.lang.reflect.Method.invoke(Method.java:507)
02-17 14:33:24.810:E / AndroidRuntime(14351):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839)
02-17 14:33:24.810:E / AndroidRuntime(14351):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-17 14:33:24.810:E / AndroidRuntime(14351):在dalvik.system.NativeStart.main(本机方法)
02-17 14:33:24.810:E / AndroidRuntime(14351):抛出java.lang.ClassNotFoundException:产生的原因com.webs.dimensiongamesculpts.android_ormlite_sample_master.main装载机dalvik.system.PathClassLoader[/data/app/com.webs.dimensiongamesculpts.android_ormlite_sample_master-2.apk]
02-17 14:33:24.810:E / AndroidRuntime(14351):在dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
02-17 14:33:24.810:E / AndroidRuntime(14351):在java.lang.ClassLoader.loadClass(ClassLoader.java:551)
02-17 14:33:24.810:E / AndroidRuntime(14351):在java.lang.ClassLoader.loadClass(ClassLoader.java:511)
02-17 14:33:24.810:E / AndroidRuntime(14351):在android.app.Instrumentation.newActivity(Instrumentation.java:1021)
02-17 14:33:24.810:E / AndroidRuntime(14351):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1610)
02-17 14:33:24.810:E / AndroidRuntime(14351):11 ...更多
 

我在资源布局文件夹中的main.xml中。我的所有外部罐子libs文件夹中。

下面是我的Main.java文件:

 包com.webs.dimensiongamesculpts.android_ormlite_sample_master;

进口com.webs.dimensiongamesculpts.android_ormlite_sample_master.R;

进口android.app.Activity;
进口android.os.Bundle;
进口android.widget.TextView;

公共类主要扩展活动{

    TextView中为txtOutput;
    回购回购;

    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.main);
        为txtOutput =(TextView中)findViewById(R.id.output);

        回购=新的回购(本);

        用户的用户=新用户(布鲁诺,影子,MySecretPassword
                email@gmail.com);

        txtOutput.append(创建用户:+ user.getAlias​​());
        user.save(回购);
        txtOutput.append(\ n用户:+ user.getAlias​​()
                +创建成功!);
        用户= repo.Users.getByUsername(影子);
        txtOutput.append(\ n用户:+ user.getAlias​​()
                +检索成功!);
        user.delete(回购);
        txtOutput.append(\ n用户:+ user.getAlias​​()
                +删除成功!);

    }
}
 
全自动炒币机器人 比特币近七天算力均值下降约 14.05

这里是我的Andr​​oidManifest.xml:

 < XML版本=1.0编码=UTF-8&GT?;
<舱单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
      包=com.webs.dimensiongamesculpts.android_ormlite_sample_master
      安卓版code =1
      机器人:VERSIONNAME =1.0>
    <用途-SDK
        安卓的minSdkVersion =9
        机器人:targetSdkVersion =19/>

    <应用机器人:图标=@可绘制/图标机器人:标签=@字符串/ APP_NAME>
        <活动机器人:主名称=
                  机器人:标签=@字符串/ APP_NAME>
            <意向滤光器>
                <作用机器人:名称=android.intent.action.MAIN/>
                <类机器人:名称=android.intent.category.LAUNCHER/>
            &所述; /意图滤光器>
        < /活性GT;

    < /用途>
< /舱单>
 

在此先感谢任何人谁可能知道答案。

下面是User.java:

 包com.webs.dimensiongamesculpts.android_ormlite_sample_master;

进口com.webs.dimensiongamesculpts.android_ormlite_sample_master.Repo;
进口com.j256.ormlite.field.DatabaseField;

公共类用户{

    @DatabaseField(ID =真)
    字符串的用户名;
    @DatabaseField
    字符串密码;
    @DatabaseField
    字符串的电子邮件;
    @DatabaseField
    字符串的别名;

    公众用户(){
        //需要ormlite
    }

    公众用户(别名字符串,字符串的用户名,密码字符串,字符串电子邮件){
        this.alias =别名;
        this.username =用户名;
        this.password =密码;
        this.email =电子邮件;
    }

    公共无效setUsername(字符串username){
        this.username =用户名;
    }

    公共字符串getUsername(){
        返回用户名;
    }

    公共无效setPassword(字符串密码){
        this.password =密码;
    }

    公共字符串getPassword来(){
        返回密码;
    }

    公共无效setEmail(字符串电子邮件){
        this.email =电子邮件;
    }

    公共字符串getEmail(){
        返回的电子邮件;
    }

    公共无效setAlias​​(字符串化名){
        this.alias =别名;
    }

    公共字符串getAlias​​(){
        返回别名;
    }


    公众诠释保存(回购回购)
    {
        如果(repo.Users.getByUsername(用户名)== NULL)
        {
            返回repo.Users.create(本);
        }
        其他
        {
            返回repo.Users.update(本);
        }
    }

    公众诠释删除(回购回购)
    {
        返回repo.Users.delete(本);
    }

    公共字符串的toString()
    {
        返回别名;
    }

}
 

下面是DatabaseHelper.java:

 包com.webs.dimensiongamesculpts.android_ormlite_sample_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.BaseDaoImp​​l;
进口com.j256.ormlite.dao.Dao;
进口com.j256.ormlite.dao.DaoManager;
进口com.j256.ormlite.support.ConnectionSource;
进口com.j256.ormlite.table.TableUtils;

公共类DatabaseHelper扩展OrmLiteSqliteOpenHelper {

    私有静态最后弦乐DATABASE_NAME =db.sqlite;
    私有静态最终诠释DATABASE_VERSION = 1;

    民营道<使用者,字符串> userDAO的= NULL;


    公共DatabaseHelper(上下文的背景下){
        超(背景下,DATABASE_NAME,空,DATABASE_VERSION);

        DatabaseInitializer初始化=新DatabaseInitializer(上下文);
        尝试 {
            initializer.createDatabase();
            initializer.close();
        }赶上(IOException异常E){
            e.printStackTrace();
        }

    }


    @覆盖
    公共无效的onCreate(SQLiteDatabase分贝,ConnectionSource connectionSource){
        尝试 {
            Log.i(DatabaseHelper.class.getName(),的onCreate);

            TableUtils.createTable(connectionSource,User.class);

        }赶上(的SQLException E){
            Log.e(DatabaseHelper.class.getName(),无法创建数据库,E);
            抛出新的RuntimeException(E);
        }
    }


    @覆盖
    公共无效onUpgrade(SQLiteDatabase分贝,ConnectionSource connectionSource,INT oldVersion,诠释静态网页){
        尝试 {
            Log.i(DatabaseHelper.class.getName(),onUpgrade);

            TableUtils.dropTable(connectionSource,User.class,真正的);

            的onCreate(DB);
        }赶上(的SQLException E){
            Log.e(DatabaseHelper.class.getName(),无法删除数据库,E);
            抛出新的RuntimeException(E);
        }
    }


    公众道<使用者,字符串> getUserDao()抛出的SQLException {
        如果(userDAO的== NULL){
            userDAO的= DaoManager.createDao(getConnectionSource(),User.class);
        }
        返回userDAO的;
    }



    @覆盖
    公共无效的close(){
        super.close();
        userDAO的= NULL;
    }
}
 

解决方案

在清单变化。主要代替。主要的活动的名称

I have made this test project to try to use ormlite to export a database to a csv file. So I have searched for this error and tried all of the things suggested in other posts, all resulting in the same error:

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

I have a main.xml in the layout folder in res. And all my external jars are in the libs folder.

Here is my Main.java file:

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!");

    }
}

and here is my 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>

Thanks in advance to anyone who might know the answer.

Here is the User.java:

package com.webs.dimensiongamesculpts.android_ormlite_sample_master;

import com.webs.dimensiongamesculpts.android_ormlite_sample_master.Repo;
import com.j256.ormlite.field.DatabaseField;

public class User {

    @DatabaseField(id = true) 
    String username;
    @DatabaseField
    String password;
    @DatabaseField
    String email;
    @DatabaseField
    String alias;

    public User() {
        // needed by ormlite
    }

    public User(String alias, String username, String password, String email) {
        this.alias = alias;
        this.username = username;
        this.password = password;
        this.email = email;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUsername() {
        return username;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPassword() {
        return password;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getEmail() {
        return email;
    }

    public void setAlias(String alias) {
        this.alias = alias;
    }

    public String getAlias() {
        return alias;
    }


    public int save(Repo repo)
    {
        if(repo.Users.getByUsername(username) == null)
        {
            return repo.Users.create(this);
        }
        else
        {
            return repo.Users.update(this);
        }
    }

    public int delete(Repo repo)
    {
        return repo.Users.delete(this);
    }

    public String toString()
    {
        return alias;
    }

}

Here is the 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;
    }
}

解决方案

In the manifest change the name of the activity to .Main instead of .main