简单的应用在Android模拟器上正常运行,但在真实设备上崩溃

时间:2017-03-25 15:50:53

标签: android opengl-es

Real Device:LG G2,android 4.4.2,OPENGL ES v3.0

仿真设备:Nexus 5X,android 7.1.1,OPENGL ES v2.0(硬件)

涉及修改视图(设置文本,使视图可见/不可见等)的应用程序在模拟器上运行完美,但在真实设备上崩溃(按下按钮时)

不涉及修改其中任何一项的应用程序在真实设备上运行良好。

我已经尝试过这个简单的应用程序:

(activity_main.xml中)

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context="com.cmnd97.test.MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="method"
        android:text="Press me" />

</LinearLayout>

(MainActivity.java)

package com.cmnd97.test;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

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

    protected void method() {
        Button btn = (Button) findViewById(R.id.button);
        btn.setText("Pressed");
    }
}

这个特定的应用程序在按下按钮时崩溃而没有向调试器打印任何错误消息,但是另一个涉及隐藏/显示按钮的应用程序打印出此错误:

无法设置EGL_SWAP_BEHAVIOR错误= EGL_BAD_MATCH

1 个答案:

答案 0 :(得分:0)

在您的清单文件和gradle中,您需要设置minimun sdk目标,因此在您的情况下可以使用sdk 15或16

defaultConfig { minSdkVersion 15 targetSdkVersion 25 }