当前位置: 首页 > 知识库问答 >
问题:

Android应用程序崩溃时更改活动在Android Studio[重复]

张勇
2023-03-14

我是新的Android Studio。我想开始一个新的活动时,一个按钮被点击,我的应用程序不断停止。

这是我的代码:这是第一个活动(我有所有的导入)


    RecyclerView recyclerView;
    FloatingActionButton add_button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dispozitive);

        recyclerView=findViewById(R.id.recyclerView);
        add_button=findViewById(R.id.add_button1);
        add_button.setOnClickListener(v -> {
                Intent intent=new Intent(Dispozitive.this, AddActivity.class);
                startActivity(intent);

        });
    }
}

第二类:

public class AddActivity extends AppCompatActivity {

    EditText nume,nr_disp,watts,nr_zile,nr_ore;
    Button add_button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add);

        nume=findViewById(R.id.nume);
        nr_disp=findViewById(R.id.nr_disp);
        watts=findViewById(R.id.nr_watts);
        nr_zile=findViewById(R.id.nr_zile);
        nr_ore=findViewById(R.id.nr_ore);

        add_button.setOnClickListener(v -> {
            MyDatabase myDB=new MyDatabase(AddActivity.this);
            myDB.adaugareDispozitiv(nume.getText().toString().trim(),
                    Integer.valueOf(nr_disp.getText().toString().trim()),
                    Integer.valueOf(watts.getText().toString().trim()),
                    Integer.valueOf(nr_zile.getText().toString().trim()),
                    Integer.valueOf(nr_ore.getText().toString().trim()));
        });

    }
}

清单文件:

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.PA8">
        <activity
            android:name=".AddActivity"
            android:exported="false"
            android:label="Adăugare dispozitiv"
            android:parentActivityName=".Dispozitive"
            />
        <activity
            android:name=".Dispozitive"
            android:exported="false"
            android:label="Dispozitive"
            android:parentActivityName=".MainActivity"
            />
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.intent.action.VIEW" />


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

</manifest>

这是按钮:

<com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/add_button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="24dp"
        android:layout_marginBottom="24dp"
        android:clickable="true"
        android:focusable="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:srcCompat="@drawable/ic_add_white" />

从主活动到离散的过渡工作得很好。我不明白为什么这两个不工作。谢谢帮忙!新年快乐!(如果你今天看到这个:))

logcat:

2021-12-31 15:52:31.032 10328-10328/com.example.pa8 E/RecyclerView: No adapter attached; skipping layout
2021-12-31 15:52:33.304 10328-10328/com.example.pa8 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.pa8, PID: 10328
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.pa8/com.example.pa8.AddActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
        at com.example.pa8.AddActivity.onCreate(AddActivity.java:26)
        at android.app.Activity.performCreate(Activity.java:7994)
        at android.app.Activity.performCreate(Activity.java:7978)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 

共有1个答案

郜振国
2023-03-14

在您的AddActivity中,您没有初始化add_按钮,因此您得到了NullPointerException

 类似资料:
  • 我是新的Android Studio。我想开始一个新的活动时,一个按钮被点击,我的应用程序不断停止。 这是我的代码:这是第一个活动(我有所有的导入) 第二类: 清单文件: 这是按钮: 从MainActivity到dispozive的转换很好。我不明白这两个为什么不起作用。谢谢你的帮助!新年快乐!(如果您今天看到:)) logcat:

  • 因此,我试图使用Android Studio进行一个类项目,但是当我尝试启动它时,即使只是一个应该显示“HelloWorld”的空白活动也会崩溃,我不知道为什么。我也不知道如何让错误控制台显示出来,所以我想我应该试着把代码贴在这里,看看它是否因为某种原因出了问题。 这正是android工作室在我用空白活动做一个新项目的时候所做的。 编辑:得到了stacktrace,在这里。

  • 在以前的代码上,谁医生帮了我 现在,android应用程序在我的手机上运行时崩溃了,这是错误日志 第一个问题是在我用相机扫描二维码后,它不能显示在二维码的结果进入 第二个问题是,我从存储器中选择了一个QRcode图像,然后点击确认,它崩溃了 下面是我认为的问题 类型不匹配:推断的类型是Uri?但乌里是意料之中的 冗余SAM构造函数 'onRequestPermissionsResult(Int,数

  • 问题内容: 我正在尝试创建一个简单的手电筒应用程序,以学习android开发。我正在尝试获取它,以便当您单击灯光ImageView对象时,它会更改图像。但是现在,当调试器进入light.setImageResource()时,它崩溃。 它抛出的错误是 问题答案: 崩溃: 正如您的堆栈跟踪所说:“ java.lang。OutOfMemoryError : 未能分配51840012字节分配,其中包含4

  • 我开发的应用程序在使用Android Studio进行测试时效果很好。但是在谷歌Play商店发布后遇到了问题。 该应用程序具有多个页面。其中一个页面使用Unity启动AR图像跟踪功能,只需单击一个按钮即可。从Android Studio将应用程序添加到我的手机时完全没有问题,一切正常。但是,当从谷歌Play商店下载时,当单击按钮启动unity时,它会立即崩溃。 我是一个新的Android开发者。任