- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 YouTube 上使用 Android Studio 制作 Android 教程。我的语法中没有突出显示的错误,但是当我在模拟器上运行该程序并且我的手机无法启动就崩溃了。
我正在尝试学习如何解决此类问题。自从接触 Java 以来,我注意到这类问题发生得越来越多,让我感到困惑和迷失。
我所要做的就是让 logcat 显示来自不同类文件的错误和空指针异常,我假设这些文件是随 SDK 一起提供的。
有人可以向我解释一下这一点以及如何利用 IDE 提供的信息来追踪我的问题吗?
需要明确的是,我正在寻找一套可以遵循的规则,以便从现在开始对我的应用程序进行故障排除。如果我在这里提供了足够的信息来接收示例,那就太好了。
我的程序,
package com.wuno;
import android.graphics.Color;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.widget.TextView;
import android.view.View.OnClickListener;
import android.widget.RadioButton;
public class MainActivity extends ActionBarActivity {
TextView myMessage;
OnClickListener myRadioClickListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button myButton=(Button)findViewById(R.id.myButton);
Button.OnClickListener myListener = new Button.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),
getString(R.id.myText),
Toast.LENGTH_LONG).show();
}
};
myButton.setOnClickListener(myListener);
myMessage=(TextView)findViewById(R.id.myText);
myRadioClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
RadioButton myRadioButton=(RadioButton)v;
switch(myRadioButton.getId()) {
case R.id.myRadioButtonRed: myMessage.setTextColor(Color.RED); break;
case R.id.myRadioButtonGreen: myMessage.setTextColor(Color.GREEN); break;
case R.id.myRadioButtonBlue: myMessage.setTextColor(Color.BLUE); break;
}
}
};
RadioButton rbred, rbgreen, rbblue;
rbred=(RadioButton)findViewById(R.id.myRadioButtonRed);
rbgreen=(RadioButton)findViewById(R.id.myRadioButtonGreen);
rbblue=(RadioButton)findViewById(R.id.myRadioButtonBlue);
rbred.setOnClickListener(myRadioClickListener);
rbgreen.setOnClickListener(myRadioClickListener);
rbblue.setOnClickListener(myRadioClickListener);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
日志猫,
05-17 02:23:15.660 929-929/com.wuno D/AndroidRuntime﹕ Shutting down VM
05-17 02:23:15.660 929-929/com.wuno W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0xb1af0ba8)
05-17 02:23:15.680 929-929/com.wuno E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.wuno, PID: 929
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wuno/com.wuno.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.wuno.MainActivity.onCreate(MainActivity.java:37)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
05-17 02:23:20.030 929-929/com.wuno I/Process﹕ Sending signal. PID: 929 SIG: 9
最佳答案
此 logCat 行:
Caused by: java.lang.NullPointerException
at com.wuno.MainActivity.onCreate(MainActivity.java:37)
来自您的代码,而不是来自 SDK。
在查看 onCreate 函数时,您没有初始化应用程序将使用的布局,这就是为什么您得到 nullPointer 并且应用程序根本无法启动。
在 onCreate 中执行以下操作:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.id.layout.xml); //or whatever your layoutfile is called
//assign your buttons and functions here
}
一般来说,从 LogCat 进行调试时,请查找与上述类似的错误。例如:
at com.packageName.className.functionName(className.java:lineNumber)
从这里开始,如果它是一个 nullPointer,请确保您能够初始化您分配的变量,或者如果它是一个 indexOutOfBounds,请确保您在 array/arrayList 的范围内循环。在 Android 中您还会遇到更多其他错误,我只列出了一个简短的列表。
关于java - Android 程序故障排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23708373/
有人可以解释一下为什么这个脚本不起作用吗? function destroy(ID) { if (confirm("Deleting is a very bad thing! Sure?")
我正在尝试使 WCF Silverlight 故障按此方式工作: MSDN aricle 将 SL 故障添加到我的 Web.config 文件后,我收到以下警告: The element 'behav
这是我要删除的 Haskell 函数 2::Int和 5::Int从列表中: remPrimesFactors25 :: [Int] -> [Int] remPrimesFactors25 [] =
当我想用 ffmpeg 连接和录制两个 mp4 视频时,我遇到了这个问题。我得到的输出是: [concat @ 0x2566e80] DTS 4079 #0:0 (h264 (native) ->
我想在delphi中编写一个程序来模拟以特定速度移动的鼠标指针(类似于AutoIT MouseMove函数)。要么是我的代码错误,要么是 SetCursorPos 在被调用太多次后出现故障。这是我的功
我将“wa、or 和 id”(来自这些州的访问者)设置为重定向到 website1.com - 当我访问该网站时,它会将我重定向到 website1.com(因此它知道我在 WA) 。但如果我将 wa
我们目前正在争论通过 WCF channel 抛出错误与传递指示状态或服务响应的消息是否更好。 故障带有 WCF 的内置支持,您可以使用内置的错误处理程序并做出相应的 react 。然而,这会带来开销
不确定我在这里做错了什么,如果有任何帮助,我们将不胜感激。 尝试创建一个名为“control”的新变量,并在行变量等于这些数字时将其编码为 1,否则编码为 0。 data$control= ifels
我想在应用洞察中记录成功调用的百分比。我看到这篇文章https://learn.microsoft.com/en-us/azure/azure-monitor/app/sampling我认为固定速率采
我正在尝试使用 SVD 和特征分解来使用动态模式分解进行一些数据分析。我遇到了一个简单的问题,即从 Matlab 和 Python 获得不同的结果。我很困惑,不知道为什么 Python 给我错误的结果
This question already has an answer here: mysqli_fetch_assoc() expects parameter / Call to a member
我刚刚开始我的一个实验室,在那里我计算类(class)的 GPA,其信息存储在结构的链接列表中。截至目前,我正在尝试打印所有类(class)信息,以确保它们已正确初始化并添加到链接列表中。 我遇到了一
我正在尝试学习如何使用 visual studio 为 C++ 制作 GUI。但是我在使用 GetWindowText() 函数时遇到了一些问题。它不会将 LPTSTR 标题更改为文本框中的文本,并且
我有一个奇怪的问题。它似乎只出现在测试者的 iPhone 5s 上。它可以在运行最新 iOS (8.3) 的 iPhone 5、6 和 6 plus 上正常运行。 这是代码 -(NSString *)
我正在尝试更新 Core Data 中的一些记录。我正在采取以下步骤来完成它 带谓词的获取函数从核心数据中检索记录 将结果集存储在对象数组中 遍历数组并更新每条记录 调用保存上下文 我遇到了两个问题
我通过 Storyboard设计了 tableView,在一个单元格中我有一个按钮和一个标签。按钮在 Storyboard上有标签 1 和标签在 Storyboard上有标签 2。在 cellForR
我实现了这个方法,当在文本字段中输入了未经授权的字符或已使用的用户名时,向用户发送多个警报 View : func textFieldShouldEndEditing(textField: UITex
伙计们,我在运行程序时遇到了这个非常奇怪的错误。这是重要的代码: 变量(编辑): const short int maxX = 100; const short int maxZ = 100; con
我有这个修改过的 Matrix Javascript 代码,我想摆脱第一次运行的所有与自身重叠的字符串。有人知道我该如何管理吗?另外,我想在我的网页上多次使用此代码,我需要声明新变量,不是吗?但是当我
有谁知道是否有网站(甚至非 Microsoft)有关于 COMExceptions/HRESULTS 的详细信息。 当我尝试在使用 Copy() 函数后保存我的 Excel 工作簿时,我收到此错误:
我是一名优秀的程序员,十分优秀!