Android 设备开闭时的应用

Android 设备开闭时的应用,android,shutdown,auto-close,Android,Shutdown,Auto Close,每次我打开手机上的应用进行检查时,它会在打开的第二秒关闭,并显示: “”应用程序名称“已停止” 它只是自动关闭,甚至没有进入主布局 p、 这是tnx的帮助,伙计们 调试说: 目标设备:54d1969c安装APK: C:\Users\erre\AndroidStudioProjects\AccountSaver\app\build\outputs\apk\app-debug.apk 正在将文件上载到:/data/local/tmp/com.erelbiran.accountsaver com.an

每次我打开手机上的应用进行检查时,它会在打开的第二秒关闭,并显示: “”应用程序名称“已停止”

它只是自动关闭,甚至没有进入主布局

p、 这是tnx的帮助,伙计们

调试说:

目标设备:54d1969c安装APK: C:\Users\erre\AndroidStudioProjects\AccountSaver\app\build\outputs\apk\app-debug.apk 正在将文件上载到:/data/local/tmp/com.erelbiran.accountsaver com.android.ddmlib.AdbCommandRejectedException:设备未经授权。 此adb服务器的$adb\u供应商\u密钥未设置。如果 这似乎是错误的。否则,请检查屏幕上的确认对话框 装置

主要活动

package com.erelbiran.accountsaver;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {


    DB myDB;
    Button btnAdd;
    EditText User = (EditText)findViewById(R.id.EnterUser), Pass = (EditText)findViewById(R.id.EnterPass), Acc = (EditText)findViewById(R.id.EnterAcc);

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        openDB();
        btnAdd.setOnClickListener(
                new View.OnClickListener()
                {
                public void onClick(View view) {
                    myDB.insertRow(User.getText().toString(), Pass.getText().toString(), Acc.getText().toString());
                    Toast.makeText(MainActivity.this, "Account Added!", Toast.LENGTH_SHORT).show();
                }}
                 );




    }
    private void openDB(){
        myDB = new DB(this);
        myDB.open();
    }
    private void closeDB(){
        myDB.close();
    }

}
梅尼费斯特

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.erelbiran.accountsaver">

    <application
        android:debuggable="true"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name="MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
onCreate(Bundle)
是初始化活动的地方。
最重要的是,在这里,您通常会使用定义UI的布局资源调用
setContentView(int)
,并使用
findViewById(int)
检索该UI中需要以编程方式交互的小部件。 尝试在
onCreate(Bundle)
试试看


您的错误是这一行:

  EditText User = (EditText)findViewById(R.id.EnterUser), 
Pass = (EditText)findViewById(R.id.EnterPass),
 Acc = (EditText)findViewById(R.id.EnterAcc);

将其移动到活动的OnCreate()

您的代码有一些错误

错误1:

EditText User = (EditText)findViewById(R.id.EnterUser), Pass = (EditText)findViewById(R.id.EnterPass), Acc = (EditText)findViewById(R.id.EnterAcc);
您必须将其移动到onCreate。不能在方法外调用findViewById

您应该将其更改为:

public class MainActivity extends Activity {

    DB myDB;
    Button btnAdd;
    EditText User,Pass, Acc;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.activity_main);

        User = (EditText)findViewById(R.id.EnterUser);
        Pass = (EditText)findViewById(R.id.EnterPass);
        Acc = (EditText)findViewById(R.id.EnterAcc);
    }
}
注意,在setContentView()之后调用findViewById

错误2

您正在空对象中设置clickListener:

btnAdd已创建但未实例化。您必须找到btnAdd应该指向的视图。在setOnClickListener之前使用findViewByID:

public class MainActivity extends Activity {
    Button btnAdd;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.activity_main);
        btnAdd = (Button)findViewById(R.id.btnAdd);
        btnAdd.setOnClickListener(......
    }
}
错误3

用于创建数据库的字符串错误。列名应该在引号内

将其更改为:

来自

public class DB {
    private static final String DATABASE_CREATE_SQL =
        "create table " + DATABASE_TABLE
        + " (" + KEY_ACCID + " integer primary key autoincrement, "
        + KEY_USER + " string not null, "
        + KEY_PASS + " string not null, "
        + KEY_ACC + " string not null"
        + ");";
}

public class DB {
    private static final String DATABASE_CREATE_SQL =
        "create table " + DATABASE_TABLE
        + " (\"" + KEY_ACCID + "\" integer primary key autoincrement, \""
        + KEY_USER + "\" string not null, \""
        + KEY_PASS + "\" string not null, \""
        + KEY_ACC + "\" string not null"
        + ")";
}

如果仍然存在错误,请按照以下步骤修复问题:

  • 安装USB驱动程序(可从供应商网站轻松下载)
  • 检查USB调试(在移动设备中)和工具->启用集成(在Android SDK中)
  • 连接您的设备,首先取消选中,然后选中USB调试(在移动设备中),将显示一个对话框以确认授权(适用于我)

  • 很可能有一股力量正在靠近。。。尝试分享日志…不客气。如果有人正确地回答了你的问题,不要忘记将其作为“公认答案”推向市场,以结束话题
    public class DB {
        private static final String DATABASE_CREATE_SQL =
            "create table " + DATABASE_TABLE
            + " (" + KEY_ACCID + " integer primary key autoincrement, "
            + KEY_USER + " string not null, "
            + KEY_PASS + " string not null, "
            + KEY_ACC + " string not null"
            + ");";
    }
    
    public class DB {
        private static final String DATABASE_CREATE_SQL =
            "create table " + DATABASE_TABLE
            + " (\"" + KEY_ACCID + "\" integer primary key autoincrement, \""
            + KEY_USER + "\" string not null, \""
            + KEY_PASS + "\" string not null, \""
            + KEY_ACC + "\" string not null"
            + ")";
    }