So i don't know what the rules are here about double posts, anywho i didn't get follow up support on my other question.. anywho my problem is stated, heres my logcat
05-28 19:45:03.464: I/ActivityManager(274): Start proc xela.kasea.flyffresell for activity xela.kasea.flyffresell/.Main: pid=793 uid=10046 gids={50046, 1028}
05-28 19:45:03.474: D/dalvikvm(793): Not late-enabling CheckJNI (already on)
05-28 19:45:04.154: I/ARMAssembler(36): generated scanline__00000077:03010104_00008001_00000000 [ 89 ipp] (110 ins) at [0x41548840:0x415489f8] in 564149 ns
05-28 19:45:04.294: D/dalvikvm(793): GC_FOR_ALLOC freed 81K, 6% free 2642K/2784K, paused 26ms, total 27ms
05-28 19:45:04.294: I/dalvikvm-heap(793): Grow heap (frag case) to 3.318MB for 714016-byte allocation
05-28 19:45:04.334: D/dalvikvm(793): GC_FOR_ALLOC freed 2K, 5% free 3337K/3484K, paused 34ms, total 34ms
05-28 19:45:04.414: I/Tag2(793): This is my error msg
05-28 19:45:04.414: D/AndroidRuntime(793): Shutting down VM
05-28 19:45:04.414: W/dalvikvm(793): threadid=1: thread exiting with uncaught exception (group=0x41465700)
05-28 19:45:04.425: E/AndroidRuntime(793): FATAL EXCEPTION: main
05-28 19:45:04.425: E/AndroidRuntime(793): java.lang.RuntimeException: Unable to start activity ComponentInfo{xela.kasea.flyffresell/xela.kasea.flyffresell.Main}: java.lang.NullPointerException
05-28 19:45:04.425: E/AndroidRuntime(793): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
05-28 19:45:04.425: E/AndroidRuntime(793): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
05-28 19:45:04.425: E/AndroidRuntime(793): at android.app.ActivityThread.access$600(ActivityThread.java:141)
05-28 19:45:04.425: E/AndroidRuntime(793): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
05-28 19:45:04.425: E/AndroidRuntime(793): at android.os.Handler.dispatchMessage(Handler.java:99)
05-28 19:45:04.425: E/AndroidRuntime(793): at android.os.Looper.loop(Looper.java:137)
05-28 19:45:04.425: E/AndroidRuntime(793): at android.app.ActivityThread.main(ActivityThread.java:5103)
05-28 19:45:04.425: E/AndroidRuntime(793): at java.lang.reflect.Method.invokeNative(Native Method)
05-28 19:45:04.425: E/AndroidRuntime(793): at java.lang.reflect.Method.invoke(Method.java:525)
05-28 19:45:04.425: E/AndroidRuntime(793): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
05-28 19:45:04.425: E/AndroidRuntime(793): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
05-28 19:45:04.425: E/AndroidRuntime(793): at dalvik.system.NativeStart.main(Native Method)
05-28 19:45:04.425: E/AndroidRuntime(793): Caused by: java.lang.NullPointerException
05-28 19:45:04.425: E/AndroidRuntime(793): at xela.kasea.flyffresell.Main.onCreate(Main.java:31)
05-28 19:45:04.425: E/AndroidRuntime(793): at android.app.Activity.performCreate(Activity.java:5133)
05-28 19:45:04.425: E/AndroidRuntime(793): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
05-28 19:45:04.425: E/AndroidRuntime(793): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
05-28 19:45:04.425: E/AndroidRuntime(793): ... 11 more
05-28 19:45:04.433: W/ActivityManager(274): Force finishing activity xela.kasea.flyffresell/.Main
05-28 19:45:04.743: I/WindowManager(274): Screenshot max retries 4 of Token{41792b40 ActivityRecord{418a4ce0 u0 xela.kasea.flyffresell/.Main}} appWin=Window{41943b50 u0 Starting xela.kasea.flyffresell} drawState=4
05-28 19:45:04.743: W/WindowManager(274): Screenshot failure taking screenshot for (400x800) to layer 21010
05-28 19:45:05.133: D/AlertService(580): Beginning updateAlertNotification
05-28 19:45:05.214: D/AlertService(580): No fired or scheduled alerts
05-28 19:45:05.263: W/ActivityManager(274): Activity pause timeout for ActivityRecord{418a4ce0 u0 xela.kasea.flyffresell/.Main}
05-28 19:45:05.593: D/AlertService(580): Scheduling next alarm with AlarmScheduler. sEventReminderReceived: null
05-28 19:45:05.853: D/AlarmScheduler(580): No events found starting within 1 week.
05-28 19:45:06.503: I/Process(793): Sending signal. PID: 793 SIG: 9
05-28 19:45:06.513: I/ActivityManager(274): Process xela.kasea.flyffresell (pid 793) has died.
and heres my main.java. Note: i am only using one class.
package xela.kasea.flyffresell;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.ToggleButton;
public class Main extends Activity implements OnClickListener{
EditText perin, amountPrUnit, buy, sell;
ToggleButton lazy;
Button clear, submit, ret;
double ans, subAnswer;
TextView pEarned, tAmount;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.display);
Log.i("Tag2", "This is my error msg");
initalizer();
lazy.setOnClickListener(this);
clear.setOnClickListener(this);
submit.setOnClickListener(this);
ret.setOnClickListener(this);
/*String a = perin.getText().toString();
String b = amountPrUnit.getText().toString();
String c = buy.getText().toString();
String d = sell.getText().toString(); */
}
private void initalizer() {
// TODO Auto-generated method stub
perin = (EditText) findViewById(R.id.etHowRich);
amountPrUnit = (EditText) findViewById(R.id.etAmountPrUnit);
buy = (EditText) findViewById(R.id.etBuying);
sell = (EditText) findViewById(R.id.etSellingPrUnit);
lazy = (ToggleButton) findViewById(R.id.tbBuying);
clear = (Button) findViewById(R.id.bClear);
submit = (Button) findViewById(R.id.bSubmit);
ret = (Button) findViewById(R.id.bReturn);
pEarned = (TextView) findViewById(R.id.tvEarned);
tAmount = (TextView) findViewById(R.id.tvAmount);
/*int a = Integer.parseInt(perin.getText().toString());
int b = Integer.parseInt(amountPrUnit.getText().toString());
int c = Integer.parseInt(buy.getText().toString());
int d = Integer.parseInt(sell.getText().toString());*/
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int a = Integer.parseInt(perin.getText().toString());
int b = Integer.parseInt(amountPrUnit.getText().toString());
int c = Integer.parseInt(buy.getText().toString());
int d = Integer.parseInt(sell.getText().toString());
switch(v.getId()){
case R.id.bClear:
perin.setText("");
amountPrUnit.setText("");
buy.setText("");
sell.setText("");
lazy.setChecked(false);
break;
case R.id.bReturn:
setContentView(R.layout.display);
break;
case R.id.bSubmit:
pEarned.setText(c*d-(a-(b*c)));
tAmount.setText(c*d+(a-(a-(b*c))));
setContentView(R.layout.finish);
break;
case R.id.tbBuying:
if (lazy.isChecked()){
buy.setText("");
double subAnswer = 0;
int ans = 0;
subAnswer = a/b;
ans = (int) Math.floor(subAnswer);
/*new Integer((int) ans).toString();
Integer.toString(answer);*/
buy.setText(ans);;
}
break;
}
}
}
what this app is suppose to do is, take a couple of user inputted numbers and do some math with them.
and if you need it, heres the manifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="xela.kasea.flyffresell"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".Main"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
I think this comment from the user requires an answer that explains the fundamental topic of what
null
is in Java:null
pointer means that you are trying to manipulate anObject
variable that does not have any memory allocated to it. TheNullPointerException
is Java's way of telling you: "Hey, the variable that you are trying to manipulate (i.e. set a listener to) is pointing to no memory location; there was noObject
instantiated for this variable or it was already garbage collected. You are trying to go to use the bathroom of a building that hasn't been built yet."The stacktrace is nice (you should be friends with him) and tells us in which line of our code the
Exception
is thrown:This means that you need to go and check that line of code and figure out which variable is
null
. Most modern IDE's have the option of introducing breakpoints that allow you to see a variable's state at runtime. Once you know which variable isnull
you can more easily figure out why. So in your case, the line causing problems is line 31 ofMain.java
. From the comments we know you said that line is:That leave us with one option;
ret
has to benull
. Then we ask ourselves:1) The variable is not initialized; we forgot to initialize it. Not our case.
2) The variable was garbaged collected. Not our case.
3) Something went wrong when we tried to initialize our variable. Probably our case.
In this case, we do not initialize the variable by calling the constructor of some class, we do it via a method (i.e.
findViewById()
). This method takes anint
that should be theid
of theView
we want to setret
to, and it either returnsnull
or theView
in question. So, if thought this out correctly, the error probably is that we used the wrong id.This answer is more to show a thinking pattern rather than an actual solution since there really is not enough information to solve the problem.
According to your error message:
the problem must be the button "
bReturn
" inside your layoutprobably doesn´t exist.
Update: well i found the problem, why load the contentview again when you click the bReturn button?:
Check your
logs
you have a NullPointerException in the linexela.kasea.flyffresell.Main.onCreate(Main.java:31)
May be one of the buttons
clear, submit, ret, lazy
might benull
.