Android 当我点击ImageView时,应用程序停止

Android 当我点击ImageView时,应用程序停止,android,android-layout,android-studio,android-studio-2.2,Android,Android Layout,Android Studio,Android Studio 2.2,在我的应用程序中,我试图添加一些ImageView(play2\u one和play2\u two),在单击ImageView后,它会导航到另一个活动。它在NEXUS S(API 25)中正常工作,但在NEXUS 5(API 24)注释3中不正常。 问题是什么?请注意: 这是我的日志: android.view.InflateException:二进制XML文件行#71:膨胀类时出错 在android.app.ActivityThread.performLaunchActivity(Activi

在我的应用程序中,我试图添加一些
ImageView
play2\u one和play2\u two
),在单击
ImageView
后,它会导航到另一个
活动。它在NEXUS S(API 25)中正常工作,但在NEXUS 5(API 24)注释3中不正常。

问题是什么?请注意:

这是我的日志:

android.view.InflateException:二进制XML文件行#71:膨胀类时出错 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2519)上 位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2578) 在android.app.ActivityThread.access$900(ActivityThread.java:170) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317) 位于android.os.Handler.dispatchMessage(Handler.java:102) 位于android.os.Looper.loop(Looper.java:146) 位于android.app.ActivityThread.main(ActivityThread.java:5727) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:515) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 在dalvik.system.NativeStart.main(本机方法) 原因:android.view.InflateException:二进制XML文件行#71:膨胀类时出错 位于android.view.LayoutInflater.createView(LayoutInflater.java:626) 在com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)上 位于android.view.LayoutInflater.onCreateView(LayoutInflater.java:675) 位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700) 位于android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 位于android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 位于android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 在android.view.LayoutInflater.inflate(LayoutInflater.java:498) 在android.view.LayoutInflater.inflate(LayoutInflater.java:398) 在android.view.LayoutInflater.充气(LayoutInflater.java:354) 位于com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:352) 位于android.app.Activity.setContentView(Activity.java:2058) 位于com.example.compassapp.MainActivity.onCreate(MainActivity.java:32) 位于android.app.Activity.performCreate(Activity.java:5581) 位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2483)上 位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2578) 在android.app.ActivityThread.access$900(ActivityThread.java:170) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317)

这是我的xml代码:

<LinearLayout
    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="vertical"
    android:background="@drawable/bitmap">

    <LinearLayout
        android:layout_margin="15dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="3">

        <ImageView
            android:id="@+id/play1_one"
            android:clickable="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:layout_marginBottom="10dp"
            android:layout_weight="1"
            android:src="@drawable/four" />

        <TextView
            android:id="@+id/txt1"
            android:textSize="25sp"
            android:gravity="center"
            android:textColor="#ffffff"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:layout_marginBottom="10dp"
            android:layout_weight="1"
            />

        <ImageView
            android:id="@+id/play1_two"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:layout_gravity="bottom"
            android:layout_marginBottom="10dp"
            android:layout_weight="1"
            android:src="@drawable/three" />
    </LinearLayout>

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <FrameLayout
            android:id="@+id/qiblaFrameLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_marginBottom="15dp"
            android:layout_marginTop="15dp"
            android:layout_marginRight="15dp"
            android:layout_marginLeft="15dp">

            <ImageView
                android:id="@+id/frameImage"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@drawable/amer" />

            <ImageView
                android:id="@+id/compassImage"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@drawable/nnn" />

        </FrameLayout>
    </FrameLayout>


</LinearLayout>

由于您在布局中添加了如此多的可绘制图形,许多设备上可能存在内存问题,正如您所说,它在NEXUS S(API 25)中正常工作,但在NEXUS 5(API 24)的注释3中却不正常工作

如果Id或其他方面有问题,那么它将无法在任何设备上工作,因此很可能是内存问题

您可以增加内存堆大小,请参阅


另外,请参阅此处,并描述一个类似的问题。

您可以共享日志吗
public class MainActivity extends Activity implements SensorEventListener {

    // define the display assembly compass picture
    private ImageView image1;

    // record the compass picture angle turned
    private float currentDegree = 0f;

    // device sensor manager
    private SensorManager mSensorManager;

    private TextView tvHeading1;

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

        // our compass image
        image1 = (ImageView) findViewById(R.id.compassImage);

        // TextView that will tell the user what degree is he heading
        tvHeading1 = (TextView) findViewById(R.id.txt3);
        // initialize your android device sensor capabilities
        mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

        ImageView imageView1 = (ImageView) findViewById(R.id.play1_one);
        imageView1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent1 = new Intent(MainActivity.this, CompassThree.class);
                startActivity(intent1);
            }
        });
        ImageView imageView2 = (ImageView) findViewById(R.id.play1_two);
        imageView2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent1 = new Intent(MainActivity.this, Compasstwo.class);
                startActivity(intent1);
            }
        });

        imageView1.setClickable(true);
        imageView2.setClickable(true);
    }

    @Override
    protected void onResume() {
        super.onResume();

        // for the system's orientation sensor registered listeners
        mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
                SensorManager.SENSOR_DELAY_GAME);
    }

    @Override
    protected void onPause() {
        super.onPause();

        // to stop the listener and save battery
        mSensorManager.unregisterListener(this);
    }

    @Override
    public void onSensorChanged(SensorEvent event) {


    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // not in use
    }


}