我还没有完成这个应用程序,但我希望看到我手机上的样子。但是,它使用InstantiationException强制关闭。
logcat中的异常:
09-19 20:13:47.987:D / szipinf(5396):初始化充气状态09-19 20:13:48.007:D / dalvikvm(5396):newInstance失败:否()09-19 20:13:48.007:D / AndroidRuntime(5396):关闭VM 09-19 20:13:48.007:W / dalvikvm(5396):threadid = 1:线程退出 未捕获的异常(组= 0x4001d560)09-19 20:13:48.017: E / AndroidRuntime(5396):致命异常:主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):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.017: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):引起:java.lang.InstantiationException: com.hyperspacemg.showstopper.MainActivity 09-19 20:13:48.017: E / AndroidRuntime(5396):at java.lang.Class.newInstanceImpl(Native 方法)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更多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}
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>
答案 0 :(得分:0)
变化:
public MainActivity(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
为:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);