【问题标题】: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_width="fill_parent"
android:layout_height="fill_parent"
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_width="fill_parent"
    android:layout_height="wrap_content"
    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_width="320dp"
    android:layout_height="250dp"
    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查看你的日志文件

标签: java android performance android-layout android-studio


【解决方案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_width="fill_parent"
    android:layout_height="fill_parent"
    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_width="fill_parent"
        android:layout_height="wrap_content"
        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_width="320dp"
        android:layout_height="250dp"
        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
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-28
  • 1970-01-01
  • 2016-10-03
  • 2018-03-23
  • 2015-05-09
  • 2016-11-19
相关资源
最近更新 更多