- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为将于明天到期的移动应用程序开发最终项目开发一个android应用程序,但遇到了问题。直到昨天,我的应用程序都可以在手机上正常运行,但是从那以后我就搞砸了。该程序可以完美运行,并且可以在模拟器上完成我需要的所有操作,即使自昨天以来我已经添加了所有内容,因此我认为该应用程序已完全完成并可以展示。但是,我今天在手机上运行它,发现启动以下 Activity 时该应用程序崩溃了...
public class OrderDetails extends AppCompatActivity {
private List<PhoneBook> contactList;
private ListView listView;
private TextView name, number, address, orderTotal, amountReceived, tip, mileage, grandTotal;
private Button add;
private PhonebookAdapter adapter;
PhoneBookHandler db;
double dAmountReceived;
double dTotalCost;
double dSubtract;
double dMileage;
double dGrandTotal;
double dTip;
double dAdd;
double dMilesDriven;
double dMultiply;
double dRatePerMile;
String sAmountReceived;
String sTotalCost;
String sTip;
String sMileage;
String sGrandTotal;
String sAddress;
String ratePerDelivery;
String ratePerMile;
String milesDriven;
EditText eAmountReceived;
EditText eTotalCost;
EditText eTip;
EditText eMileage;
EditText eAddress;
EditText eGrandTotal;
EditText eMilesDriven;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.order_details);
listView = (ListView) findViewById(R.id.contactlist);
db = new PhoneBookHandler(this);
contactList = db.getAllContacts();
adapter = new PhonebookAdapter(this, contactList);
eAddress = (EditText) findViewById(R.id.address);
eTotalCost = (EditText) findViewById(R.id.orderTotal);
eAmountReceived = (EditText) findViewById(R.id.amountReceived);
eTip = (EditText) findViewById(R.id.tip);
eMileage = (EditText) findViewById(R.id.mileage);
eGrandTotal = (EditText) findViewById(R.id.grandTotal);
eMilesDriven = (EditText) findViewById(R.id.milesDriven);
// use shared preferences to inflate mileage edittext with data entered in settings menu
ratePerDelivery = PreferenceManager.getDefaultSharedPreferences(this).getString("ratePerDeliveryPref", null);
ratePerMile = PreferenceManager.getDefaultSharedPreferences(this).getString("ratePerMilePref", null);
eAmountReceived.addTextChangedListener(new TextWatcher()
{
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after){}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count){}
@Override
public void afterTextChanged(Editable s)
{
if (getCurrentFocus() == eAmountReceived)
{
sAmountReceived = eAmountReceived.getText().toString();
sTotalCost = eTotalCost.getText().toString();
sMileage = eMileage.getText().toString();
sTip = eTip.getText().toString();
try
{
dAmountReceived = Double.parseDouble(sAmountReceived);
dTotalCost = Double.parseDouble(sTotalCost);
dSubtract = dAmountReceived - dTotalCost;
dMileage = Double.parseDouble(sMileage);
dGrandTotal = dSubtract + dMileage;
} catch(NumberFormatException e){}
sTip = String.valueOf(dSubtract);
DecimalFormat df = new DecimalFormat("0.00");
sTip = df.format(dSubtract);
eTip.setText(sTip);
sGrandTotal = String.valueOf(dGrandTotal);
sGrandTotal = df.format(dGrandTotal);
eGrandTotal.setText(sGrandTotal);
}
}
});
eTip.addTextChangedListener(new TextWatcher()
{
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after){}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count){}
@Override
public void afterTextChanged(Editable s) {
if (getCurrentFocus() == eTip)
{
sAmountReceived = eAmountReceived.getText().toString();
sTotalCost = eTotalCost.getText().toString();
sMileage = eMileage.getText().toString();
sTip = eTip.getText().toString();
try {
dTip = Double.parseDouble(sTip);
dTotalCost = Double.parseDouble(sTotalCost);
dAdd = dTotalCost + dTip;
dMileage = Double.parseDouble(sMileage);
dGrandTotal = dTip + dMileage;
} catch (NumberFormatException e) {
}
sAmountReceived = String.valueOf(dAdd);
DecimalFormat df = new DecimalFormat("0.00");
sAmountReceived = df.format(dAdd);
eAmountReceived.setText(sAmountReceived);
sGrandTotal = String.valueOf(dGrandTotal);
sGrandTotal = df.format(dGrandTotal);
eGrandTotal.setText(sGrandTotal);
}
}
});
if (ratePerMile.equals("") && !ratePerDelivery.equals(""))
{
eMileage.setText(ratePerDelivery);
}
else
{
eMilesDriven.addTextChangedListener(new TextWatcher()
{
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after){}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count){}
@Override
public void afterTextChanged(Editable s)
{
if (getCurrentFocus() == eMilesDriven)
{
sAmountReceived = eAmountReceived.getText().toString();
sTotalCost = eTotalCost.getText().toString();
sMileage = eMileage.getText().toString();
sTip = eTip.getText().toString();
try
{
milesDriven = eMilesDriven.getText().toString();
dMilesDriven = Double.parseDouble(milesDriven);
dRatePerMile = Double.parseDouble(ratePerMile);
dMultiply = dRatePerMile * dMilesDriven;
dGrandTotal = dSubtract + dMultiply;
} catch(NumberFormatException e){}
sMileage = String.valueOf(dMultiply);
DecimalFormat df = new DecimalFormat("0.00");
sMileage = df.format(dMultiply);
eMileage.setText(sMileage);
sGrandTotal = String.valueOf(dGrandTotal);
sGrandTotal = df.format(dGrandTotal);
eGrandTotal.setText(sGrandTotal);
}
}
});
}
}
public void onClick(View view)
{
name = (EditText) findViewById(R.id.name);
number = (EditText) findViewById(R.id.number);
address = (EditText) findViewById(R.id.address);
orderTotal = (EditText) findViewById(R.id.orderTotal);
amountReceived = (EditText) findViewById(R.id.amountReceived);
tip = (EditText) findViewById(R.id.tip);
mileage = (EditText) findViewById(R.id.mileage);
grandTotal = (EditText) findViewById(R.id.grandTotal);
String cName = name.getText().toString();
String num = number.getText().toString();
String cAddress = address.getText().toString();
String cOrderTotal = orderTotal.getText().toString();
String cAmountReceived = amountReceived.getText().toString();
String cTip = tip.getText().toString();
String cMileage = mileage.getText().toString();
String cGrandTotal = grandTotal.getText().toString();
int id = db.addContact(new PhoneBook(cName, num, cAddress, cOrderTotal,
cAmountReceived, cTip, cMileage, cGrandTotal));
contactList.add(new PhoneBook(id, cName, num, cAddress, cOrderTotal,
cAmountReceived, cTip, cMileage, cGrandTotal));
adapter.notifyDataSetChanged();
Toast.makeText(getApplicationContext(), "Entry Successfully Created.", Toast.LENGTH_LONG).show();
}
public void buttonClickFunction(View v)
{
Intent intent = new Intent(getApplicationContext(), display_database.class);
startActivity(intent);
}
public void sendMessage(View v)
{
eAddress = (EditText) findViewById(R.id.address);
sAddress = eAddress.getText().toString();
String map = "http://maps.google.com/maps?q=" + sAddress;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(map));
startActivity(intent);
}
}
FATAL EXCEPTION: main
Process: com.example.boley.databaseexample, PID: 15335
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.boley.databaseexample/com.example.boley.personaldeliveryassistant.OrderDetails}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
at android.app.ActivityThread.access$1100(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at com.example.boley.personaldeliveryassistant.OrderDetails.onCreate(OrderDetails.java:173)
at android.app.Activity.performCreate(Activity.java:6876)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
at android.app.ActivityThread.access$1100(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
最佳答案
getCurrentFocus()
Return the view in this Window that currently has focus, or null if there are none. Note that this does not look in any containing Window.
afterTextChanged(Editable s)
中这样做,它已经指向当前的edittext。
if (ratePerMile.equals("") && !ratePerDelivery.equals(""))
if (ratePerMile == null && ratePerDelivery != null)
关于android - Android应用程式当机,没有logcat错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44013946/
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 4 年前。 Improve
我在终端中使用“adb -d logcat”来查看我的应用程序日志文件。最近,我遇到了一大堆运行时错误——由于某种原因我看不到所有这些错误。它只是在结尾处以“...30 more”结束: [ 08-1
我的 Logcat 停止与我的“开发者设备”Huawei Y5 一起工作。 我使用完全更新的 Android 3.5.1,直到两天前一切正常,现在突然我的应用程序日志不再显示了。 logcat 显示以
我使用 Eclipse 开发应用程序。当我转到 eclipse 的菜单窗口-> 显示 View -> 其他时,我发现两个项目名为“LogCat”和“LogCat(deprecated)”。 LogCa
我在我的应用程序中使用 Timber 和 DebugTree。我想将所有消息记录到 Firebase 崩溃报告中。 Timber.plant(object : Timber.DebugTree()
在 Moto G 上开发我的应用程序时,我经常遇到数以万计的以下消息淹没日志。 E/MM_OSAL ( 275): isSamePayload Sync byte(0x47) not found!!
在注意到 Android Studio 中没有显示 Logcat 消息后,我尝试了所有解决方案,但都没有奏效。我最终尝试了命令 adb devices 并确定我的设备在那里,但是当我尝试 adb lo
来自命令:C:\android-sdk-windows\platform-tools>adb shell 然后是 logcat -b radio 它打印旧的历史日志。我试着像这样调用 logcat -
我每15分钟就会遇到“blank logcat”或“logcat bug”的问题,随意告诉它! 我知道以下解决方案可以解决此问题: 进入 DDMS 并选择我的设备 => 80% 的情况下,logcat
请原谅我没有以完整尺寸显示 Logcat(到目前为止,我使用的是 RAM 和图形内存有限的 VM)。 每次启动 Eclipse 时,Logcat 都会像这样显示所有这些信息列(红色圆圈)。 现在,我想
我正在尝试运行 react-native log-android 来测试在我的 react-native 手机应用程序上上传谷歌照片。我得到错误 warn The following packages
对于 Android 应用程序,我将日志保存在设备本身上,以便在出现问题时我们可以找出问题所在。此设备在无互联网环境中运行,因此无法远程写入日志。 下面的代码首先清除缓冲区,然后将记录的内容连续写入“
显示 LogCat 几分钟后消失。我从 Window->Preferences->Logcat 中将 LogCat 输出消息的数量更改为 10000。但在读取整个堆栈之前仍然消失。知道为什么会发生这种
我有一些与 Android Logcat 相关的问题,我将这些问题称为 REAL DEVICE 而不是模拟器: 我有一个程序有很多 Log.d (或其他类似的日志功能),我做了一些谷歌搜索,发现这些日
我收到很多与我的应用程序相关的此类 logcat 消息。 2019-03-13 10:05:51.065 27319-27319/com.example.fir_s1 I/chatty: uid=10
我正在对一个奇怪的错误进行故障排除,当不良行为发生时,我在 logcat 中看到了这一点。 --------- beginning of system 这是什么意思?我没有找到任何 nativ
我想通过 APPIUM 获取特定标签(例如:testing_aws)的 ADB logcats。实际上我是直接从控制台完成此操作的,如下所示 我导航至 /home/jagadeesh/android-
我刚刚开始使用 android,正在制作一个 webview 应用程序 我的整个计划是显示启动屏幕,直到 webview 加载,然后切换某些内容的可见性,然后使 webview 可见 WebView
我刚刚在运行 Mountain Lion 的 Mac 上安装了 Eclipse 3.8。我打开了 LogCat 窗口并点击最小化,它去了某个地方...... 现在当我点击 Window>Show Vi
我使用 Parse 作为我的应用程序的后端,并且我使用了他们的 quick start guide设置推送通知。 我已经一步一步地跟着它了,没有得到插入。当我启动应用程序时,我还在 logcat 中收
我是一名优秀的程序员,十分优秀!