InstantiationException is thrown
I haven't finished this app, but I was hoping to see what it looks like on my phone. However, it force-closes with an InstantiationException.
Exception in logcat:
09-19 20:13:47.987: D/szipinf(5396): Initializing inflate state 09-19 20:13:48.007: D/dalvikvm(5396): newInstance failed: no () 09-19 20:13:48.007: D/AndroidRuntime(5396): Shutting down VM 09-19 20:13:48.007: W/dalvikvm(5396): threadid=1: thread exiting with uncaught exception (group=0x4001d560) 09-19 20:13:48.017: E/AndroidRuntime(5396): FATAL EXCEPTION: main 09-19 20:13:48.017: E/AndroidRuntime(5396): java.lang.RuntimeException: Unable to instantiate activity 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): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784) 09-19 20:13:48.017: E/AndroidRuntime(5396): at android.app.ActivityThread.access$1500(ActivityThread.java:123) 09-19 20:13:48.01 7: E/AndroidRuntime(5396): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939) 09-19 20:13:48.017: E/AndroidRuntime(5396): at android.os.Handler.dispatchMessage(Handler.java:99) 09-19 20:13:48.017: E/AndroidRuntime(5396): at android.os.Looper.loop(Looper.java:130) 09-19 20:13:48.017: E/AndroidRuntime(5396): at android.app.ActivityThread.main(ActivityThread.java:3835) 09-19 20:13:48.017: E/AndroidRuntime(5396): at java.lang.reflect.Method.invokeNative(Native Method) 09-19 20:13:48.017: E/AndroidRuntime(5396): at java.lang.reflect.Method.invoke(Method.java:507) 09-19 20:13:48.017: E/AndroidRuntime(5396): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864) 09-19 20:13:48.017: E/AndroidRuntime(5396): at 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): Caused by: 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): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1672) 09-19 20:13:48.017: E/AndroidRuntime(5396): ... 11 more 09-19 20:13:48.017: W/ActivityManager(1426): Force finishing activity com.hyperspacemg.showstopper/.MainActivity 09-19 20:13:48.177: D/dalvikvm(1426): GC_EXTERNAL_ALLOC freed 311K, 42% free 6658K/11335K, external 2060K/2067K, paused 73ms 09-19 20:13:48.237: D/dalvikvm(5379): GC_CONCURRENT freed 346K, 48% free 3158K/6023K, external 0K/0K, paused 18ms+3ms 09-19 20:13:48.378: I/dalvikvm(5355): Total arena pages for JIT: 11 09-19 20:13:48.518: W/ActivityManager(1426): Activity pause timeout for HistoryRecord{40824588 com.hyperspacemg.showstopper/.MainActivity}
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;
}
}
Main.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>
Strings.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>
Change:
public MainActivity(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
to:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
链接地址: http://www.djcxy.com/p/31432.html