应用程序不幸停止了?

Posted

技术标签:

【中文标题】应用程序不幸停止了?【英文标题】:App Unfortunately Stopped? 【发布时间】:2015-06-20 02:37:36 【问题描述】:

当我运行 android Studio 项目时显示 应用程序不幸停止

以下是activity_main.xmlMainActivity.java 代码。

activity_main.xml


    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/RelativeLayout1"
android:layout_
android:layout_
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:background="@color/abc_primary_text_material_dark" >

<Button
    android:id="@+id/button1"
    android:layout_
    android:layout_
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="40dp"
    android:background="@color/abc_primary_text_disable_only_material_light"
    android:text="@string/black"
    android:onClick="onClick"/>

<ImageView
    android:id="@+id/image1"
    android:layout_
    android:layout_
    android:scaleType="fitXY"
    android:contentDescription="@string/black"
    android:onClick="onClick"/>

</RelativeLayout>

MainActivity.java

    package com.sudheergv.pndu;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
import android.view.View;

import java.util.*;

public class MainActivity extends Activity 
    ImageView imageView;

    public void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView= (ImageView)findViewById(R.id.image1);

    


    public void onClick(View view) 



        int[] picture=

                
                        R.drawable.android3d,R.drawable.android,R.drawable.image1;
        Random r = new Random();
        int n=r.nextInt(picture.length);
        imageView.setImageResource(picture[n]);
    

【问题讨论】:

请发布错误日志 你的picture数组的长度是3,而n的值可能是6,迟早你会得到一个ArrayIndexOutOfBoundsException异常。 请告诉我该怎么做??? 你可以把r.nextInt(7)改成r.nextInt(picture.length) 我想你有outOfBoundIndex exeption查看你的日志文件 【参考方案1】:

您应该将View view 放入您的onClick 方法中;

public void onClick(View view) 

    int[] picture = 
        R.drawable.android3d,R.drawable.android,R.drawable.image1;
        Random r = new Random();
        int n=r.nextInt(7);
        imageView.setImageResource(picture[n]);

你应该给你的ImageView 一个drawable 像这样:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/RelativeLayout1"
    android:layout_
    android:layout_
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity"
    android:background="@color/abc_primary_text_material_dark" >

    <Button
        android:id="@+id/button1"
        android:layout_
        android:layout_
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="40dp"
        android:background="@color/abc_primary_text_disable_only_material_light"
        android:text="@string/black"
        android:onClick="onClick"/>

    <ImageView
        android:id="@+id/image1"
        android:layout_
        android:layout_
        android:src="@drawable/your_drawable"
        android:scaleType="fitXY"
        android:contentDescription="@string/black" />

</RelativeLayout>

【讨论】:

public void onClick(View view) int[] picture= R.drawable.android3d,R.drawable.android,R.drawable.image1;随机 r = new Random(); int n=r.nextInt(picture.length); imageView.setImageResource(图片[n]); 修改但仍然是相同的朋友 引起:android.view.InflateException:二进制 XML 文件第 1 行:在 com. android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) 在 android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) 在 android .view.LayoutInflater.inflate(LayoutInflater.java:482) @SuperThomasLab 我发现了这个错误!你应该给你的imageview一个drawable:在你的imageview中你应该把android:src="@drawable/example_drawable" 现在显示如下 渲染问题 标签需要'drawable' 属性或定义drawable 的子标签 你的意思是 android:src="@drawable/Image name" 图像名称啊?? @SuperThomasLab

以上是关于应用程序不幸停止了?的主要内容,如果未能解决你的问题,请参考以下文章

从真实设备运行时,android应用程序不幸停止了

当我按下 ButtonImage 时,应用程序崩溃了。不幸的是,该应用程序已停止工作[重复]

不幸的是,应用程序已停止在模拟器中工作

Android自定义ArrayAdapter:滚动时“不幸的是,应用程序已停止”

不幸的是,Flutter App 因无法启动活动 ComponentInfo 错误而停止工作

GCM Android:不幸的是,GCM 演示已停止