- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
迄今为止应用的简要说明:
用户单击 MainActivity.java 中的开始按钮,并将被重定向到带有 TextToSpeech 实例的新 Activity (FirstWord.java)。 FirstWord.java 的问题可能会导致崩溃 [?] 。
MainActivity.java [相关部分]
public void startClicked(View view){
Intent i = new Intent( MainActivity.this, FirstWord.class );
MainActivity.this.startActivity(i);
}
activity_main.XML,我已经为按钮添加了 android:onClick="startClicked"
属性。
FirstWord.java
package com.example.learnwords;
import java.util.Locale;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import android.view.View.OnClickListener;
public class FirstWord extends Activity implements OnClickListener, OnInitListener{
private TextToSpeech myTTS;
private int MY_DATA_CHECK_CODE = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button proButton = (Button)findViewById(R.id.proButton);
proButton.setOnClickListener(this);
Intent checkTTSIntent = new Intent();
checkTTSIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkTTSIntent, MY_DATA_CHECK_CODE);
}
@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;
}
public void proClicked(View view){
TextView textView = (TextView)findViewById(R.id.textView1);
String word = textView.getText().toString();
speakWords(word);
}
private void speakWords(String speech) {
//speak straight away
myTTS.speak(speech, TextToSpeech.QUEUE_FLUSH, null);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == MY_DATA_CHECK_CODE) {
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
//the user has the necessary data - create the TTS
myTTS = new TextToSpeech(this, this);
}
else {
//no data - install it now
Intent installTTSIntent = new Intent();
installTTSIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installTTSIntent);
}
}
}
//setup TTS
public void onInit(int initStatus) {
//check for successful instantiation
if (initStatus == TextToSpeech.SUCCESS) {
if(myTTS.isLanguageAvailable(Locale.US)==TextToSpeech.LANG_AVAILABLE)
myTTS.setLanguage(Locale.US);
}
else if (initStatus == TextToSpeech.ERROR) {
Toast.makeText(this, "Sorry! Text To Speech failed...", Toast.LENGTH_LONG).show();
}
}
@Override
public void onClick(View v) {
}
}
完整 Logcat:有一个 NullPointer 异常和一个 RunPointer 异常
09-18 21:15:45.094: D/ActivityThread(4730): setTargetHeapUtilization:0.25
09-18 21:15:45.094: D/ActivityThread(4730): setTargetHeapIdealFree:8388608
09-18 21:15:45.104: D/ActivityThread(4730): setTargetHeapConcurrentStart:2097152
09-18 21:15:45.515: I/Adreno200-EGLSUB(4730): <ConfigWindowMatch:2087>: Format RGBA_8888.
09-18 21:15:45.525: E/(4730): <s3dReadConfigFile:75>: Can't open file for reading
09-18 21:15:45.535: E/(4730): <s3dReadConfigFile:75>: Can't open file for reading
09-18 21:15:48.408: W/dalvikvm(4730): threadid=1: thread exiting with uncaught exception (group=0x4196f438)
09-18 21:15:48.408: E/AndroidRuntime(4730): FATAL EXCEPTION: main
09-18 21:15:48.408: E/AndroidRuntime(4730): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.learnwords/com.example.learnwords.FirstWord}: java.lang.NullPointerException
09-18 21:15:48.408: E/AndroidRuntime(4730): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
09-18 21:15:48.408: E/AndroidRuntime(4730): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
09-18 21:15:48.408: E/AndroidRuntime(4730): at android.app.ActivityThread.access$700(ActivityThread.java:143)
09-18 21:15:48.408: E/AndroidRuntime(4730): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241)
09-18 21:15:48.408: E/AndroidRuntime(4730): at android.os.Handler.dispatchMessage(Handler.java:99)
09-18 21:15:48.408: E/AndroidRuntime(4730): at android.os.Looper.loop(Looper.java:137)
09-18 21:15:48.408: E/AndroidRuntime(4730): at android.app.ActivityThread.main(ActivityThread.java:4950)
09-18 21:15:48.408: E/AndroidRuntime(4730): at java.lang.reflect.Method.invokeNative(Native Method)
09-18 21:15:48.408: E/AndroidRuntime(4730): at java.lang.reflect.Method.invoke(Method.java:511)
09-18 21:15:48.408: E/AndroidRuntime(4730): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
09-18 21:15:48.408: E/AndroidRuntime(4730): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
09-18 21:15:48.408: E/AndroidRuntime(4730): at dalvik.system.NativeStart.main(Native Method)
09-18 21:15:48.408: E/AndroidRuntime(4730): Caused by: java.lang.NullPointerException
09-18 21:15:48.408: E/AndroidRuntime(4730): at com.example.learnwords.FirstWord.onCreate(FirstWord.java:27)
09-18 21:15:48.408: E/AndroidRuntime(4730): at android.app.Activity.performCreate(Activity.java:5179)
09-18 21:15:48.408: E/AndroidRuntime(4730): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
09-18 21:15:48.408: E/AndroidRuntime(4730): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
09-18 21:15:48.408: E/AndroidRuntime(4730): ... 11 more
有什么想法吗?谢谢
最佳答案
这一行:setContentView(R.layout.activity_main);
您似乎正在加载主要 Activity 的布局,而不是 FirstWorld 的布局。 请改用 FirstWorld 的布局文件。您将获得 NullPointer,因为 setContentView
后的以下代码初始化 activity_main
中未找到的小部件/表单> 布局文件。
使用 FirstWorld 的布局文件,它会像这样:setContentView(R.layout.activity_first_world);
或 FirstWorld 布局文件的名称。
关于java - 新 Activity 因运行时异常和空指针异常而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18884943/
我刚接触 C 语言几周,所以对它还很陌生。 我见过这样的事情 * (variable-name) = -* (variable-name) 在讲义中,但它到底会做什么?它会否定所指向的值吗? 最佳答案
我有一个指向内存地址的void 指针。然后,我做 int 指针 = void 指针 float 指针 = void 指针 然后,取消引用它们以获取值。 { int x = 25; vo
我正在与计算机控制的泵进行一些串行端口通信,我用来通信的 createfile 函数需要将 com 端口名称解析为 wchar_t 指针。 我也在使用 QT 创建一个表单并获取 com 端口名称作为
#include "stdio.h" #include "malloc.h" int main() { char*x=(char*)malloc(1024); *(x+2)=3; --
#include #include main() { int an_int; void *void_pointer = &an_int; double *double_ptr = void
对于每个时间步长,我都有一个二维矩阵 a[ix][iz],ix 从 0 到 nx-1 和 iz 从 0 到 nz-1。 为了组装所有时间步长的矩阵,我定义了一个长度为 nx*nz*nt 的 3D 指针
我有一个函数,它接受一个指向 char ** 的指针并用字符串填充它(我猜是一个字符串数组)。 *list_of_strings* 在函数内部分配内存。 char * *list_of_strings
我试图了解当涉及到字符和字符串时,内存分配是如何工作的。 我知道声明的数组的名称就像指向数组第一个元素的指针,但该数组将驻留在内存的堆栈中。 另一方面,当我们想要使用内存堆时,我们使用 malloc,
我有一个 C 语言的 .DLL 文件。该 DLL 中所有函数所需的主要结构具有以下形式。 typedef struct { char *snsAccessID; char *
指针, C语言的精髓 莫队先咕几天, 容我先讲完树剖 (因为后面树上的东西好多都要用树剖求 LCA). 什么是指针 保存变量地址的变量叫做指针. 这是大概的定义, 但是Defad认为
我得到了以下数组: let arr = [ { children: [ { children: [], current: tru
#include int main(void) { int i; int *ptr = (int *) malloc(5 * sizeof(int)); for (i=0;
我正在编写一个程序,它接受一个三位数整数并将其分成两个整数。 224 将变为 220 和 4。 114 将变为 110 和 4。 基本上,您可以使用模数来完成。我写了我认为应该工作的东西,编译器一直说
好吧,我对 C++ 很陌生,我确定这个问题已经在某个地方得到了回答,而且也很简单,但我似乎找不到答案.... 我有一个自定义数组类,我将其用作练习来尝试了解其工作原理,其定义如下: 标题: class
1) this 指针与其他指针有何不同?据我了解,指针指向堆中的内存。如果有指向它们的指针,这是否意味着对象总是在堆中构造? 2)我们可以在 move 构造函数或 move 赋值中窃取this指针吗?
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: C : pointer to struct in the struct definition 在我的初学者类
我有两个指向指针的结构指针 typedef struct Square { ... ... }Square; Square **s1; //Representing 2D array of say,
变量在内存中是如何定位的?我有这个代码 int w=1; int x=1; int y=1; int z=1; int main(int argc, char** argv) { printf
#include #include main() { char *q[]={"black","white","red"}; printf("%s",*q+3); getch()
我在“C”类中有以下函数 class C { template void Func1(int x); template void Func2(int x); }; template void
我是一名优秀的程序员,十分优秀!