Android - 按钮onclick没有错误,但得到"应用程序停止工作"

时间:2018-05-26 10:39:04

标签: java android

我想在图片点击时打开我的应用程序商店链接。在mainactivity文件中,在OnCreate中,我添加了以下

    ImageView Button = (ImageView)findViewById(R.id.imageView5);

    Button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.addCategory(Intent.CATEGORY_BROWSABLE);
            intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=APPNAME"));
            startActivity(intent);
        }
    });

在布局文件中,这是我的图像;

            <ImageView
                android:id="@+id/imageView5"
                android:layout_width="232dp"
                android:layout_height="105dp"
                android:layout_marginTop="10dp"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:visibility="visible"
                ads:srcCompat="@drawable/write009" />

我在哪里做错了?

更新:这是我在使用虚拟设备进行调试后从logcat获得的内容

java.lang.RuntimeException: Unable to start activity
ComponentInfo{antivirus.android.APPNAME/com.APPNAME.activities.MainActivity}:
java.lang.NullPointerException: Attempt to invoke virtual method 'void 
android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a 
null object reference

3 个答案:

答案 0 :(得分:2)

如果没有崩溃日志很难猜出问题,但我认为您不应该在意图中使用addCategory(Intent.CATEGORY_BROWSABLE)

ImageView button = (ImageView)findViewById(R.id.imageView5);

button.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=APPNAME"));
        startActivity(intent);
    }
});

答案 1 :(得分:1)

尝试使用此

<ImageView
                android:id="@+id/imageView5"
                android:layout_width="232dp"
                android:layout_height="105dp"
                android:layout_marginTop="10dp"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:visibility="visible"
                android:src="@drawable/write009" />

ads:srcCompat更改为android:src

答案 2 :(得分:1)

根据LogCat,您的变量Button为空 - findViewById()找不到R.id.imageView5。您确定编辑了正确的布局文件吗?您是否使用onCreate()在活动setContentView(R.layout.your_layout_name)的初始化时加载此布局文件?

另外,您可以尝试将变量名称更改为小写button,也许它与类Button发生冲突(我怀疑这一点,但会发生奇怪的事情)