Debug error: ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 2137

  • Antworten:4
Robin B.
  • Forum-Beiträge: 91

06.11.2013, 17:57:20 via Website

Hallo zusammen, ich bin noch ein ziemlicher "noob" was programmieren angeht und versuche aktuell eine Einheiten Umrechener App für Android zu schreiben, dass hat auch bis vor kurzem noch ganz gut funktioniert, aber seit einiger zeit bekomme ich immer folgenden Fehler angezeigt und weiß nicht was er bedeutet:
1ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 2137

Hier ist die Main Activity meiner App:
1public class MainActivity extends Activity implements OnItemSelectedListener{
2
3 Button convertButton;
4 EditText inputEditText;
5 TextView hintTextView1;
6 TextView hintTextView2;
7 TextView outputTextView1;
8 TextView outputTextView2;
9 CharSequence inches = getResources().getString(R.string.inches);
10 CharSequence cm = getResources().getString(R.string.cm);
11 CharSequence feet = getResources().getString(R.string.feet);
12 CharSequence cm_or_inch_hint_inputEditText = getResources().getString(R.string.cm_or_inch_hint_inputEditText);
13 CharSequence cm_to_inch_hintTextView1 = getResources().getString(R.string.cm_to_inch_hintTextView1);
14 CharSequence inch_to_cm_hintTextView2 = getResources().getString(R.string.inch_to_cm_hintTextView2);
15 CharSequence are = getResources().getString(R.string.are);
16 String measure_string = inputEditText.getText().toString();
17 Double measure_double = Double.parseDouble(measure_string);
18
19 @Override
20 protected void onCreate(Bundle savedInstanceState) {
21 super.onCreate(savedInstanceState);
22 setContentView(R.layout.layout_main);
23
24 //Gets all resources you need to get the input measure, calculate and printout the converted measure
25 convertButton = (Button) findViewById(R.id.convertButton);
26 inputEditText = (EditText) findViewById(R.id.inputEditText);
27 hintTextView1 = (TextView) findViewById(R.id.hintTextView1);
28 hintTextView2 = (TextView) findViewById(R.id.hintTextView2);
29 outputTextView1 = (TextView) findViewById(R.id.outputTextView1);
30 outputTextView2 = (TextView) findViewById(R.id.outputTextView2);
31
32
33
34 final Spinner measure_unit_spinner = (Spinner) findViewById(R.id.measure_unit_spinner);
35 ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.measure_units, android.R.layout.simple_spinner_item);
36 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
37 measure_unit_spinner.setAdapter(adapter);
38 OnItemSelectedListener listener = new OnItemSelectedListener() {
39
40 @Override
41 public void onItemSelected(AdapterView<?> parent, View view,
42 int pos, long id) {
43 }
44
45 @Override
46 public void onNothingSelected(AdapterView<?> parent) {
47 }
48 };
49 measure_unit_spinner.setOnItemSelectedListener(listener);
50
51 convertButton.setOnClickListener(new View.OnClickListener() {
52 public void onClick(View v) {
53 switch(measure_unit_spinner.getId())
54 {
55 case 0:
56 convertCmAndInch();
57 break;
58 }
59 }
60 });
61 }
62
63 protected void convertCmAndInch() {
64
65 //second part: if cm convert to inch
66 hintTextView1.setText(cm_to_inch_hintTextView1);
67 Double cm_to_inch_decimal = (double) (measure_double/2.54);
68 Integer cm_to_inch_no_decimal = (int) (cm_to_inch_decimal*100.0);
69 Double cm_to_inch_output = (double) cm_to_inch_no_decimal/100.0;
70 outputTextView1.setText(measure_string + " " + cm + are + " " + cm_to_inch_output.toString() + " " + inches);
71
72 //second part: if inch convert to cm
73 hintTextView2.setText(inch_to_cm_hintTextView2);
74 Double inch_to_cm_decimal = (double) (measure_double*2.54);
75 Integer inch_to_cm_no_decimal = (int) (inch_to_cm_decimal*100.0);
76 Double inch_to_cm_output = (double) (inch_to_cm_no_decimal/100.0);
77 outputTextView2.setText(measure_string + " " + cm + are + " " + inch_to_cm_output.toString() + " " + cm);
78
79 }
80
81 @Override
82 public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
83 long arg3) {
84 }
85
86 @Override
87 public void onNothingSelected(AdapterView<?> arg0) {
88 }
89
90
91}

Kann mir irgendjemand von euch sagen, was ich falsch gemacht habe ?
Schon mal im Vorraus danke :)

— geändert am 06.11.2013, 20:10:16

Antworten
Christian
  • Forum-Beiträge: 307

06.11.2013, 18:50:01 via Website

Hi Robin,

mmhh die Fehlermeldung ist ein bissel kurz das müsste eigentlich noch mehr stehen.

Ich vermute mal der Fehler liegt hier:
1//auslesen der Ressourcen sollte in der onCreate stattfinden
2CharSequence inches = getResources().getString(R.string.inches);
3CharSequence cm = getResources().getString(R.string.cm);
4CharSequence feet = getResources().getString(R.string.feet);
5CharSequence cm_or_inch_hint_inputEditText = getResources().getString(R.string.cm_or_inch_hint_inputEditText);
6CharSequence cm_to_inch_hintTextView1 = getResources().getString(R.string.cm_to_inch_hintTextView1);
7CharSequence inch_to_cm_hintTextView2 = getResources().getString(R.string.inch_to_cm_hintTextView2);
8CharSequence are = getResources().getString(R.string.are);
9
10//das kann so nicht gehen da du erst in der onCreate den Wert von inputEditText festlegst
11String measure_string = inputEditText.getText().toString();
12Double measure_double = Double.parseDouble(measure_string);

mfg Christian

— geändert am 06.11.2013, 18:51:07

Antworten
Robin B.
  • Forum-Beiträge: 91

06.11.2013, 20:00:08 via Website

okay, aber wenn ich die CharSequences in die OnCreate verschiebe, erhalte ich weiter unten diesen Fehler:
cm_to_inch_hintTextView1 cannot be resolved to a variable

— geändert am 06.11.2013, 20:00:37

Antworten
impjor
  • Forum-Beiträge: 1.793

06.11.2013, 20:02:53 via App

Bitte nächstes mal leere Methoden, generell unwichtige Sachen weglassen, erhöht die Lesbarkeit.

Bitte poste mal deinen neuen Code.

LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Robin B.
  • Forum-Beiträge: 91

06.11.2013, 20:11:29 via Website

So, ich denke jetzt ist das ganze ein bisschen übersichtlicher, aber da ich nicht weiß, wo der Fehler herkommt kann ich den Code nicht großartig kürzen. :(

Antworten