Android应用程序没有显示任何错误但在启动时崩溃?

时间:2013-12-04 13:28:28

标签: android eclipse

我对android开发很新。我正在尝试制作一个壁纸应用程序,但它在模拟器和真实设备(三星Galaxy S4迷你)崩溃。 这是我的MainActivity(只有一部分我实际上有超过50张图片)

 import java.io.IOException;
 import android.os.Bundle;
 import android.app.Activity;
 import android.app.WallpaperManager;
  import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.Button;
 import android.widget.ImageButton;
import android.widget.ImageView;

public class MainActivity extends Activity implements OnClickListener {
ImageButton image1, image2, image3, image4, image5, image6, image7, image8, image9, image10, 
ImageView display;
Button set;

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

public void initialize(){

    image1 = (ImageButton) findViewById(R.id.button1);
    image2 = (ImageButton) findViewById(R.id.button2);
    image3 = (ImageButton) findViewById(R.id.button3);
    image4 = (ImageButton) findViewById(R.id.button4);
    image5 = (ImageButton) findViewById(R.id.button5);
    image6 = (ImageButton) findViewById(R.id.button6);
    image7 = (ImageButton) findViewById(R.id.button7);
    image8 = (ImageButton) findViewById(R.id.button8);
    image9 = (ImageButton) findViewById(R.id.button9);

}
public void onClick() {


    image1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            setContentView(R.layout.second);
            display.setImageResource(R.drawable.image1);    



            }
    });
    image2.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            setContentView(R.layout.second);
            display.setImageResource(R.drawable.image2);    
        }
    });
    image3.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            setContentView(R.layout.second);
            display.setImageResource(R.drawable.image3);    
        }
    });

我的清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.acmilanwallpapersblueball"
android:versionCode="1"
android:versionName="1.0" android:installLocation="auto">

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.SET_WALLPAPER"    android:maxSdkVersion="19"/>

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">
    <activity
        android:configChanges="keyboardHidden|orientation"
        android:name="com.acmilanwallpapersblueball.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

我已经尝试了几个方法来解决问题,但每次都会崩溃。我使用与此类似的代码创建了几个不同的应用程序,但每个应用程序都崩溃了。

1 个答案:

答案 0 :(得分:4)

ImageView display未初始化。此外,您在同一活动中不止一次setContentView,这不是一个好的设计。

同样findViewById查找当前膨胀布局中具有id的视图。所以你可能正在获得NPE。不确定显示是在activity_main.xml还是second.xml

Button set也未初始化。

I actually have over 50 images

您可以将listview与LazyLoading一起使用

相关问题