30/09/2018, 23:11

Lỗi NullPointerException khi chuyển sang Activity mới

Ở MainActivity mình có tạo Intent để chuyển sang ProductActivity

Intent intent = new Intent(this, ProductActivity.class);
startActivity(intent);

Bên ProductActivity của mình tương tự như sau:

import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
public class ProductActivity extends AppCompatActivity {
    TextView mTags;

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

        mTags = (TextView) findViewById(R.id.tagsValue);
        mTags.setText("Hello");
    }
}

Nhưng khi chạy mình bị báo lỗi NullPointerException ở phần
mTags = (TextView) findViewById(R.id.tagsValue);

Mình chắc chắn rằng có layout product.xml và có một cái TextView có id là tagsValue. Mong mọi người giúp

... viết 01:22 ngày 01/10/2018

Có thể do khai báo thiếu tag activity trong file Manifest.

Quân viết 01:25 ngày 01/10/2018

xem kĩ xem có đúng là @+id/tagsValue hay lại là @id/tagValues

Phạm Sỹ Hưng viết 01:17 ngày 01/10/2018

Bạn giải thích rõ hơn được không, cám ơn bạn

Phạm Sỹ Hưng viết 01:11 ngày 01/10/2018

Chắc chắn đúng bạn ơi

X viết 01:12 ngày 01/10/2018

Post toàn bộ log lên cho mọi người dễ tìm hơn.

Phạm Sỹ Hưng viết 01:12 ngày 01/10/2018

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.designwall.ecommerce, PID: 9287
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.designwall.ecommerce/com.designwall.ecommerce.ProductActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2212)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
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:732)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.designwall.ecommerce.ProductActivity.onCreate(ProductActivity.java:11)
at android.app.Activity.performCreate(Activity.java:5341)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
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:732)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at dalvik.system.NativeStart.main(Native Method)

Đây bạn ơi

Nguyen Ca viết 01:12 ngày 01/10/2018

Manifest chắc add sai activity rồi. đưa Manifest lên xem sao

X viết 01:19 ngày 01/10/2018

R.id.tagsValue có nằm trong R.layout.product ?

Phạm Sỹ Hưng viết 01:19 ngày 01/10/2018

Có nằm trong product.xml bạn ơi

X viết 01:25 ngày 01/10/2018

post cả manifest, xml lên hết xem nào

Phạm Sỹ Hưng viết 01:20 ngày 01/10/2018

manifest

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

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

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

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

</manifest>

Và product.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="horizontal"
                tools:context="com.designwall.ecommerce.ProductActivity">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Tags"
            android:id="@+id/tagsValue"
            />
</RelativeLayout>
X viết 01:21 ngày 01/10/2018

<activity android:name=".ProductActivity">
</activity>

Thay close tag </activity> của ProductActivity thành />, clean build lại project xem sao chứ lỗi này cũng khó thật, chả biết sai chỗ nào nữa =))

Phạm Sỹ Hưng viết 01:19 ngày 01/10/2018

Vẫn bị lỗi Hix

Nguyen Ca viết 01:17 ngày 01/10/2018

Cái productActivity có cùng cấp với cái MainActivity không vậy?

... viết 01:26 ngày 01/10/2018

Thử thêm filter cho activity của product

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        
        <activity android:name=".ProductActivity">
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>

                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>
Phạm Sỹ Hưng viết 01:18 ngày 01/10/2018

Cùng cấp bạn ơi

Phạm Sỹ Hưng viết 01:21 ngày 01/10/2018

Vẫn lỗi như vậy bạn ơi

... viết 01:16 ngày 01/10/2018

android:orientation=“horizontal”

cái orientation chỉ dùng cho LinearLayout thôi, RelativeLayout không có thuộc tính này.

Bài liên quan
0