2

我还没有完成这个应用程序,但我希望在我的手机上看到它的样子。但是,它使用 InstantiationException 强制关闭。

logcat 中的异常:

09-19 20:13:47.987: D/szipinf(5396): 初始化充气状态 09-19 20:13:48.007: D/dalvikvm(5396): newInstance failed: no () 09-19 20:13:48.007: D/AndroidRuntime(5396): 关闭 VM 09-19 20:13:48.007: W/dalvikvm(5396): threadid=1: 线程退出未捕获异常 (group=0x4001d560) 09-19 20:13:48.017: E /AndroidRuntime(5396): 致命异常: main 09-19 20:13:48.017: E/AndroidRuntime(5396): java.lang.RuntimeException: 无法实例化活动 ComponentInfo{com.hyperspacemg.showstopper/com.hyperspacemg.showstopper。 MainActivity}: java.lang.InstantiationException: com.hyperspacemg.showstopper.MainActivity 09-19 20:13:48.017: E/AndroidRuntime(5396): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1680) 09-19 20:13:48.017:E/AndroidRuntime(5396):在 android.app.ActivityThread。handleLaunchActivity(ActivityThread.java:1784) 09-19 20:13:48.017: E/AndroidRuntime(5396): 在 android.app.ActivityThread.access$1500(ActivityThread.java:123) 09-19 20:13:48.017: E /AndroidRuntime(5396): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:939) 09-19 20:13:48.017: E/AndroidRuntime(5396): 在 android.os.Handler.dispatchMessage(Handler. java:99) 09-19 20:13:48.017: E/AndroidRuntime(5396): 在 android.os.Looper.loop(Looper.java:130) 09-19 20:13:48.017: E/AndroidRuntime(5396) : 在 android.app.ActivityThread.main(ActivityThread.java:3835) 09-19 20:13:48.017: E/AndroidRuntime(5396): 在 java.lang.reflect.Method.invokeNative(Native Method) 09-19 20 :13:48.017: E/AndroidRuntime(5396): 在 java.lang.reflect.Method.invoke(Method.java:507) 09-19 20:13:48.017: E/AndroidRuntime(5396):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864) 09-19 20:13:48.017: E/AndroidRuntime(5396): 在 com.android.internal.os.ZygoteInit.main( ZygoteInit.java:622) 09-19 20:13:48.017: E/AndroidRuntime(5396): at dalvik.system.NativeStart.main(Native Method) 09-19 20:13:48.017: E/AndroidRuntime(5396):引起:java.lang.InstantiationException: com.hyperspacemg.showstopper.MainActivity 09-19 20:13:48.017: E/AndroidRuntime(5396): at java.lang.Class.newInstanceImpl(Native Method) 09-19 20:13 :48.017: E/AndroidRuntime(5396): at java.lang.Class.newInstance(Class.java:1409) 09-19 20:13:48.017: E/AndroidRuntime(5396): at android.app.Instrumentation.newActivity( Instrumentation.java:1021) 09-19 20:13:48.017: E/AndroidRuntime(5396): 在 android.app.ActivityThread。performLaunchActivity(ActivityThread.java:1672) 09-19 20:13:48.017: E/AndroidRuntime(5396): ... 11 更多 09-19 20:13:48.017: W/ActivityManager(1426): 强制完成活动 com。 hyperspacemg.showstopper/.MainActivity 09-19 20:13:48.177: D/dalvikvm(1426): GC_EXTERNAL_ALLOC 释放 311K, 42% 空闲 6658K/11335K, 外部 2060K/2067K, 暂停 73ms 09-19 20:13:48.237: D /dalvikvm(5379): GC_CONCURRENT 释放 346K, 48% 空闲 3158K/6023K, 外部 0K/0K, 暂停 18ms+3ms 09-19 20:13:48.378: I/dalvikvm(5355): JIT 的竞技场总页数: 11 09 -19 20:13:48.518:W/ActivityManager(1426):HistoryRecord{40824588 com.hyperspacemg.showstopper/.MainActivity} 的活动暂停超时hyperspacemg.showstopper/.MainActivity 09-19 20:13:48.177: D/dalvikvm(1426): GC_EXTERNAL_ALLOC 释放 311K, 42% 空闲 6658K/11335K, 外部 2060K/2067K, 暂停 73ms 09-19 20:13:48.237: D /dalvikvm(5379): GC_CONCURRENT 释放 346K, 48% 空闲 3158K/6023K, 外部 0K/0K, 暂停 18ms+3ms 09-19 20:13:48.378: I/dalvikvm(5355): JIT 的竞技场总页数: 11 09 -19 20:13:48.518:W/ActivityManager(1426):HistoryRecord{40824588 com.hyperspacemg.showstopper/.MainActivity} 的活动暂停超时hyperspacemg.showstopper/.MainActivity 09-19 20:13:48.177: D/dalvikvm(1426): GC_EXTERNAL_ALLOC 释放 311K, 42% 空闲 6658K/11335K, 外部 2060K/2067K, 暂停 73ms 09-19 20:13:48.237: D /dalvikvm(5379): GC_CONCURRENT 释放 346K, 48% 空闲 3158K/6023K, 外部 0K/0K, 暂停 18ms+3ms 09-19 20:13:48.378: I/dalvikvm(5355): JIT 的竞技场总页数: 11 09 -19 20:13:48.518:W/ActivityManager(1426):HistoryRecord{40824588 com.hyperspacemg.showstopper/.MainActivity} 的活动暂停超时11 09-19 20:13:48.518: W/ActivityManager(1426): HistoryRecord{40824588 com.hyperspacemg.showstopper/.MainActivity} 的活动暂停超时11 09-19 20:13:48.518: W/ActivityManager(1426): HistoryRecord{40824588 com.hyperspacemg.showstopper/.MainActivity} 的活动暂停超时

主要活动

package com.hyperspacemg.showstopper;

import com.hyperspacemg.showstopper.ColorPickerDialog.OnColorChangedListener;

import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.view.Menu;
import android.view.View;
import android.widget.RadioButton;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

public class MainActivity extends Activity implements OnColorChangedListener
    {
    public static final String PREFS_NAME = "ShowStopperPrefsFile";

    SeekBar seekbarChan, seekbarRed, seekbarGreen, seekbarBlue, seekbarBand, seekbarSens;
    TextView valueChan, valueRed, valueGreen, valueBlue, side, valueBand, valueSens, valueSave;
    private static int Chan = 0;
    private static int Rset = 0;
    private static int Gset = 0;
    private static int Bset = 0;
    private static int Side = 0;
    private static int Band = 0;
    private static int Sens = 24;
    private static int Save = 0;

    String chanFinal = null;
    String redFinal = null;
    String greenFinal = null;
    String blueFinal = null;
    String modeFinal = null;
    String sideFinal = null;
    String bandFinal = null;
    String sensFinal = null;
    String saveFinal = null;
    String message = "<HMG" + chanFinal + ":" + redFinal + ":" + greenFinal + ":" + blueFinal + ":" + modeFinal + ":" + sideFinal + ":" + bandFinal + ":" + sensFinal + ":" + saveFinal + ">"; 

    public MainActivity(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);

        valueChan = (TextView) findViewById(R.id.textViewChan);
        seekbarChan = (SeekBar) findViewById(R.id.seekBarChan);
        valueRed = (TextView) findViewById(R.id.textViewRed);
        seekbarRed = (SeekBar) findViewById(R.id.seekBarRed);
        valueGreen = (TextView) findViewById(R.id.textViewGreen);
        seekbarGreen = (SeekBar) findViewById(R.id.seekBarGreen);
        valueBlue = (TextView) findViewById(R.id.textViewBlue);
        seekbarBlue = (SeekBar) findViewById(R.id.seekBarBlue);
        valueBand = (TextView) findViewById(R.id.textViewBand);
        seekbarBand = (SeekBar) findViewById(R.id.seekBarBand);
        valueSens = (TextView) findViewById(R.id.textViewSens);
        seekbarSens = (SeekBar) findViewById(R.id.seekBarSens);

        int sbar_chan_position = settings.getInt("seekbar_chan_pref", 0);
        seekbarChan.setProgress(sbar_chan_position);
        valueChan.setText("Channel: " + sbar_chan_position);
        Chan = sbar_chan_position;

        int sbar_red_position = settings.getInt("seekbar_red_pref", 0);
        seekbarRed.setProgress(sbar_red_position);
        valueRed.setText("Red: " + sbar_red_position);
        Rset = sbar_red_position;

        int sbar_green_position = settings.getInt("seekbar_green_pref", 0);
        seekbarGreen.setProgress(sbar_green_position);
        valueGreen.setText("Green: " + sbar_green_position);
        Gset = sbar_green_position;

        int sbar_blue_position = settings.getInt("seekbar_blue_pref", 0);
        seekbarBlue.setProgress(sbar_blue_position);
        valueBlue.setText("Blue: " + sbar_blue_position);
        Bset = sbar_blue_position;

        int sbar_band_position = settings.getInt("seekbar_band_pref", 0);
        seekbarBand.setProgress(sbar_band_position);
        valueBand.setText("Band: " + sbar_band_position);
        Band = sbar_band_position;

        int sbar_sens_position = settings.getInt("seekbar_sens_pref", 0);
        seekbarSens.setProgress(sbar_sens_position);
        valueSens.setText("Sensitivity: " + sbar_red_position);
        Sens = sbar_sens_position;

        seekbarChan.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
                valueChan.setText("Channel: " + progress);

                Chan = progress;


                String chanFinal = "" + Chan;

            }
            public void onStartTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
            }

            public void onStopTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
            }
        });

seekbarRed.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
                valueRed.setText("Red: " + progress);

                Rset = progress;


                String redFinal = "" + Rset;

            }
            public void onStartTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
            }

            public void onStopTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
            }
        });

seekbarGreen.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
                valueGreen.setText("Green: " + progress);

                Gset = progress;


                String greenFinal = "" + Gset;

            }
            public void onStartTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
            }

            public void onStopTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
            }
        });

seekbarBlue.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
                valueBlue.setText("Blue: " + progress);

                Bset = progress;


                String blueFinal = "" + Bset;

            }

            public void onStartTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
            }

            public void onStopTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
            }
        });

seekbarBand.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
                    String audB = null;
                    switch(progress)
                    {
                    case 0:
                    audB = "63Hz";
                    break;
                    case 1:
                    audB = "160Hz";
                    break;
                    case 2:
                    audB = "400Hz";
                    break;
                    case 3:
                    audB = "1kHz";
                    break;
                    case 4:
                    audB = "2.5kHz";
                    break;
                    case 5:
                    audB = "6.25kHz";
                    break;
                    case 6:
                    audB = "16kHz";
                    break;
                    }
                valueBand.setText("Band: " + audB);

                Band = progress;


                String bandFinal = "" + Band;

            }
            public void onStartTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
            }

            public void onStopTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
            }
        });

seekbarSens.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
                    int sensitivity = progress + 1;
                valueSens.setText("Sensitivity: " + sensitivity);

                Sens = progress;


                String sensFinal = "" + Sens;

            }

            public void onStartTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
            }

            public void onStopTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
            }
        });










    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    public void colorChanged(int color) {

        int sbar_red_position = Color.red(color);
        int sbar_green_position = Color.green(color);
        int sbar_blue_position = Color.blue(color);

        seekbarRed.setProgress(sbar_red_position);
        valueRed.setText("Red: " + sbar_red_position);
        Rset = sbar_red_position;

        seekbarGreen.setProgress(sbar_green_position);
        valueGreen.setText("Green: " + sbar_green_position);
        Gset = sbar_green_position;

        seekbarBlue.setProgress(sbar_blue_position);
        valueBlue.setText("Blue: " + sbar_blue_position);
        Bset = sbar_blue_position;

    }

    @Override
    public void onStart() {
        super.onStart();
        }

    @Override
    public void onResume() {
        super.onResume();
    }

    @Override
    public void onPause() {
        super.onPause();
        SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
        SharedPreferences.Editor editor = settings.edit();
        editor.putInt("seekbar_red_pref", Rset);
        editor.putInt("seekbar_green_pref", Gset);
        editor.putInt("seekbar_blue_pref", Bset);
        editor.commit();
    }

    @Override
    public void onStop() {
        super.onStop();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }

    public void onClickColorPicker(View v) {
        new ColorPickerDialog(this, this, Color.rgb(Rset, Gset, Bset)).show();
    }

    public void onRadioButtonClicked(View v) {
        // When radio button is clicked

        // dumb stuff to make these radio group
        RadioButton rb = (RadioButton) v;

        RadioButton rb0 = (RadioButton) findViewById(R.id.radio0);
        RadioButton rb1 = (RadioButton) findViewById(R.id.radio1);

        rb0.setChecked(false);
        rb1.setChecked(false);
        rb.setChecked(true);
        // end dumb stuff

        int checkedRadioButton = rb.getId();

        String radioButtonSelected = "";

        switch (checkedRadioButton) {
        case R.id.radio0:
            radioButtonSelected = "0";
            break;
        case R.id.radio1:
            radioButtonSelected = "1";
            break;
        }
        String audS = radioButtonSelected;
    }


}

主.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
<RelativeLayout
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content"
 android:padding="5dp">
 <TextView
        android:id="@+id/textViewChan"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:text="@string/channel"/>

 <SeekBar
        android:id="@+id/seekBarChan"
        android:layout_below="@+id/textViewChan"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:max="4"
        android:paddingBottom="10dp" />
 <Button
        android:id="@+id/btnChoose"
        android:layout_below="@+id/seekBarChan"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="@string/choose"/>
 <Button
        android:id="@+id/btnRandom"
        android:layout_below="@+id/btnChoose"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="@string/random"/>
 <TextView
        android:id="@+id/textViewRed"
        android:layout_below="@+id/btnRandom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:paddingTop="10dp"
        android:text="@string/Red" />
    <SeekBar
        android:id="@+id/seekBarRed"
        android:layout_below="@+id/textViewRed"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="255"
        android:paddingBottom="10dp" />
    <TextView
        android:id="@+id/textViewGreen"
        android:layout_below="@+id/seekBarRed"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:paddingTop="10dp"
        android:text="@string/Green" />
    <SeekBar
        android:id="@+id/seekBarGreen"
        android:layout_below="@+id/textViewGreen"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="255"
        android:paddingBottom="10dp" />
    <TextView
        android:id="@+id/textViewBlue"
        android:layout_below="@+id/seekBarGreen"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:paddingTop="10dp"
        android:text="@string/Blue" />
    <SeekBar
        android:id="@+id/seekBarBlue"
        android:layout_below="@+id/textViewBlue"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="255"
        android:paddingBottom="10dp" />
    <Spinner
        android:id="@+id/spinnerMode"
        android:layout_below="@+id/seekBarBlue"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/mode_array"
        android:prompt="@string/mode_prompt" />
    <TextView
        android:id="@+id/textViewSide"
        android:layout_below="@+id/spinnerMode"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:paddingTop="5dp"
        android:text="@string/side" />

      <RadioButton
          android:id="@+id/radio0"
          android:layout_below="@+id/textViewSide"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_gravity="left"
          android:layout_marginLeft="10dp"
          android:checked="true"
          android:onClick="onRadioButtonClicked"
          android:text="@string/left" />

        <RadioButton
            android:id="@+id/radio1"
            android:layout_below="@+id/textViewSide"
            android:layout_toRightOf="@+id/radio0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:onClick="onRadioButtonClicked"
            android:text="@string/right" />
        <TextView
        android:id="@+id/textViewBand"
        android:layout_below="@+id/radio0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:paddingTop="10dp"
        android:text="@string/band" />
        <SeekBar
        android:id="@+id/seekBarBand"
        android:layout_below="@+id/textViewBand"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="5"
        android:paddingBottom="10dp" />
        <TextView
        android:id="@+id/textViewSens"
        android:layout_below="@+id/seekBarBand"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:paddingTop="10dp"
        android:text="@string/sens" />
        <SeekBar
        android:id="@+id/seekBarSens"
        android:layout_below="@+id/textViewSens"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="255"
        android:paddingBottom="10dp" />
        <Button
        android:id="@+id/btnApply"
        android:layout_below="@+id/seekBarSens"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="@string/apply"/>
        <Button
        android:id="@+id/btnSave"
        android:layout_below="@+id/btnApply"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="@string/save"/>

</RelativeLayout>
</ScrollView>

字符串.xml

<resources>

    <string name="app_name">Show Stopper</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">Show Stopper</string>
    <string name="random">Random Color!</string>
    <string name="channel">Channel %d</string>
    <string name="Red">Red %d</string>
    <string name="Green">Green %d</string>
    <string name="Blue">Blue %d</string>
    <string name="side">Audio Side</string>
    <string name="left">Left</string>
    <string name="right">Right</string>
    <string name="band">Band %d</string>
    <string name="sens">Sensitivity %d</string>
    <string name="choose">Choose a Color!</string>
    <string name="apply">Apply</string>
    <string name="save">Save</string>

    <string name="mode_prompt">Choose a Mode</string>

    <string-array name="mode_array">
        <item>Random Fade</item>
        <item>HeartBeat Red</item>
        <item>Set Color</item>
        <item>Pulse Color</item>
        <item>Heartbeat Color</item>
        <item>Audio Color</item>
        <item>Audio Random Flash</item>
        <item>Audio Random Set</item>
    </string-array>

</resources>
4

1 回答 1

0

改变:

public MainActivity(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

到:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
于 2012-09-20T01:46:19.167 回答