Google의 안드로이드 튜토리얼을 조금 훑어보고 내 간단한 계산기 응용 프로그램을 함께 사용하기로 결정했습니다. 나는 JAVA의 좋은 점을 알고 있고, 약간의 SDKs 전에 안드로이드 조금 돌아 다닌다. 나는 그 코드가 훌륭하다고 생각하지만, 나는 그 놈을 도망 갈 수 없다. LogCat을 기반으로 답변을 찾으려고했지만 행운이 없었습니다. 첫째, 여기 내 MainActivity.java입니다 :실행할 간단한 안드로이드 계산기 앱을 얻을 수 없다
package com.AppliedArgonautics.calculator;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
EditText editText1 = (EditText)findViewById(R.id.editText1);
EditText editText2 = (EditText)findViewById(R.id.editText2);
TextView textView1 = (TextView)findViewById(R.id.textView1);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void Add(){
float num1 = Float.parseFloat(editText1.getText().toString());
float num2 = Float.parseFloat(editText2.getText().toString());
float result = num1 + num2;
textView1.setText(Float.toString(result));
}
public void Subtract(){
float num1 = Float.parseFloat(editText1.getText().toString());
float num2 = Float.parseFloat(editText2.getText().toString());
float result = num1 - num2;
textView1.setText(Float.toString(result));
}
public void Multiply(){
float num1 = Float.parseFloat(editText1.getText().toString());
float num2 = Float.parseFloat(editText2.getText().toString());
float result = num1 * num2;
textView1.setText(Float.toString(result));
}
public void Divide(){
float num1 = Float.parseFloat(editText1.getText().toString());
float num2 = Float.parseFloat(editText2.getText().toString());
float result = num1/num2;
textView1.setText(Float.toString(result));
}
public void Clear(){
editText1.setText("");
editText2.setText("");
textView1.setText("");
}
}
내 매니페스트 파일 : 다음
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.AppliedArgonautics.calculator"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
, 이것은 내가 실행하려고하면 로그 캣 보여줍니다 무엇인가 activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="32dp"
android:onClick="Add"
android:text="Add" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_below="@+id/button1"
android:layout_marginTop="45dp"
android:onClick="Multiply"
android:text="Multiply" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button3"
android:layout_alignParentRight="true"
android:layout_marginRight="28dp"
android:onClick="Subtract"
android:text="Subtract" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button3"
android:layout_alignBottom="@+id/button3"
android:layout_alignLeft="@+id/button2"
android:onClick="Divide"
android:text="Divide" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_centerHorizontal="true"
android:onClick="Clear"
android:text="Clear" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignRight="@+id/button1"
android:layout_marginTop="37dp"
android:ems="10"
android:inputType="phone" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/editText1"
android:layout_alignLeft="@+id/button2"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/editText1"
android:ems="10"
android:inputType="phone" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button5"
android:layout_below="@+id/editText1"
android:layout_marginTop="56dp"
android:text="TextView" />
</RelativeLayout>
그것 :
/Trace (3186): error opening trace file: No such file or directory (2)
D/AndroidRuntime(3186): Shutting down VM
W/dalvikvm(3186): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
E/AndroidRuntime(3186): FATAL EXCEPTION: main
E/AndroidRuntime(3186): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.AppliedArgonautics.calculator/com.AppliedArgonautics.calculator.MainActivi ty}: java.lang.NullPointerException
E/AndroidRuntime(3186): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983)
E/AndroidRuntime(3186): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
E/AndroidRuntime(3186): at android.app.ActivityThread.access$600(ActivityThread.java:130)
E/AndroidRuntime(3186): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
E/AndroidRuntime(3186): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(3186): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(3186): at android.app.ActivityThread.main(ActivityThread.java:4745)
E/AndroidRuntime(3186): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(3186): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(3186): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
E/AndroidRuntime(3186): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
E/AndroidRuntime(3186): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(3186): Caused by: java.lang.NullPointerException
E/AndroidRuntime(3186): at android.app.Activity.findViewById(Activity.java:1825)
E/AndroidRuntime(3186): at com.AppliedArgonautics.calculator.MainActivity.<init>(MainActivity.java:10)
E/AndroidRuntime(3186): at java.lang.Class.newInstanceImpl(Native Method)
E/AndroidRuntime(3186): at java.lang.Class.newInstance(Class.java:1319)
E/AndroidRuntime(3186): at android.app.Instrumentation.newActivity(Instrumentation.java:1053)
E/AndroidRuntime(3186): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974)
E/AndroidRuntime(3186): ... 11 more
W/ActivityManager( 160): Force finishing activity com.AppliedArgonautics.calculator/.MainActivity
내가 woul 누군가가 이것을 볼 수 있다면 정말 고마워. 나는 안드로이드를 배우는 것이 멋지다고 생각했지만 이처럼 간단한 프로그램조차도 사용할 수 없다는 것에 매우 좌절감을 느낍니다. 고맙습니다.
덕분에 많은 당신을 도와줍니다! 나는 오류 처리를 전혀하지 않았다. 단지 시작하는 것이기 때문에. 그러나 이러한 함수가 View 매개 변수를 사용한다는 것을 아는 것은 매우 좋았습니다. 나는 아직도 안드로이드가 어떻게 작동 하는지를 배울 것이 많다. – dereksalerno