我正在开发一个安卓温度转换器应用程序(它不工作)。起初我在 LogCat 上看到这条消息
the application may be doing too much work on its main thread
然后我删除了从未使用过的代码。
现在,这是错误:
java.lang.RuntimeException: Unable to start activity
代码:Main_Activity.java
package com.example.tempconverter;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText editCelsius = (EditText) findViewById(R.id.editCelsius);
final EditText editFahrenheit = (EditText) findViewById(R.id.editFahrenheit);
Button buttonConvert =(Button)findViewById(R.id.buttonConvert);
buttonConvert.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
double celsius = Double.valueOf(editCelsius.getText().toString());
double fahrenheit = (celsius * 9)/5 +32;
editFahrenheit.setText(String.valueOf(fahrenheit));
}
});
}
}
fragment_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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.tempconverter.MainActivity$PlaceholderFragment" >
<TextView
android:id="@+id/textCelsius"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="55dp"
android:text="Celsius"
android:textAppearance="?android:attr/textAppearanceMedium"
tools:ignore="hardcodedtext" />
<EditText
android:id="@+id/editCelsius"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/textCelsius"
android:layout_marginLeft="52dp"
android:layout_toRightOf="@+id/textCelsius"
android:ems="7"
android:inputType="number" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textFahrenheit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editCelsius"
android:layout_marginTop="31dp"
android:text="Fahrenheit"
android:textAppearance="?android:attr/textAppearanceMedium"
tools:ignore="hardcodedtext" />
<Button
android:id="@+id/buttonConvert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editFahrenheit"
android:layout_centerHorizontal="true"
android:layout_marginTop="70dp"
android:text="Convert"
tools:ignore="hardcodedtext" />
<EditText
android:id="@+id/editFahrenheit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/editCelsius"
android:layout_alignTop="@+id/textFahrenheit"
android:ems="7"
android:inputType="number" />
</RelativeLayout>
现在这是 LogCat 的一部分...... https://drive.google.com/file/d/0Bxd5Rg3QFBfbdkZULWxNUTVrV2M/edit?usp=sharing
最佳答案
显然,您夸大了错误的观点。你有一个 RuntimeException
,你应该有一个 NullPointerException
,因为 setContentView
尝试设置(和方法 findViewById
尝试在里面找到 View )错误的布局为:
setContentView(R.layout.activity_main);
而您所有的 EditText
、TextView
和 Buttons
都在 fragment_main.xml
中。
尝试按如下方式设置内容 View :
setContentView(R.layout.fragment_main);
或者,将 fragment_main.xml
重命名为 activity_main.xml
。
评论更新:
这类错误“无法加载内存跟踪模块”发生在带有模拟器的一些设备上。为避免这种情况,请始终使用多个进行测试> 设备(真实与否)。
关于java.lang.RuntimeException : Unable to start activity and skipping frames 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22744799/