簡體   English   中英

模擬器停止工作

[英]Emulator stopped working

我對android編程很陌生

我正在嘗試執行從這里編寫的應用程序,

但我無法運行該應用。 當我嘗試運行應用程序時,模擬器會顯示

Abc(應用名稱)突然停止工作

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="horizontal">
<EditText android:id="@+id/edit_message"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:hint="@string/edit_message" />
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_send"
    android:onClick="sendMessage"
    />
</LinearLayout>

MainActivity.java

package com.xyz.abc;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends ActionBarActivity {

private static final String EXTRA_MESSAGE = "com.xyz.Abc.MESSAGE";


/** Called when the user clicks the Send button */
public void sendMessage(View view) {
    // Do something in response to button

    Intent intent = new Intent(this, DisplayMessageActivity.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}


@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;
}

}

DisplayMessageActivity.java

 package com.xyz.abc;

 import android.support.v7.app.ActionBarActivity;
 import android.support.v7.app.ActionBar;
 import android.support.v4.app.Fragment;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.os.Build;

 public class DisplayMessageActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_display_message);

    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
            .add(R.id.container, new PlaceholderFragment()).commit();
    }
}

@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);
}

/**
 * A placeholder fragment containing a simple view.
 */
public static class PlaceholderFragment extends Fragment {

    public PlaceholderFragment() { }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
              Bundle savedInstanceState) {
          View rootView = inflater.inflate(R.layout.fragment_display_message,
                  container, false);
          return rootView;
    }
}
}

fragment_display_message.xml

<LinearLayout 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.xyz.abc.DisplayMessageActivity$PlaceholderFragment" >

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/edit_message" />

</LinearLayout>

以下是錯誤的logcat輸出。

05-07 06:11:21.004:D / AndroidRuntime(1143):關閉VM 05-07 06:11:21.004:W / dalvikvm(1143):threadid = 1:線程退出且未捕獲異常(group = 0xb2aabba8)05 -07 06:11:21.134:E / AndroidRuntime(1143):致命異常:主05-07 06:11:21.134:E / AndroidRuntime(1143):進程:com.xyz.abc,PID:1143 05-07 06 :11:21.134:E / AndroidRuntime(1143):java.lang.RuntimeException:無法啟動活動ComponentInfo {com.xyz.abc/com.xyz.abc.MainActivity}:java.lang.IllegalStateException:您需要使用此活動的Theme.AppCompat主題(或后代)。 05-07 06:11:21.134:E / AndroidRuntime(1143):位於android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)05-07 06:11:21.134:E / AndroidRuntime(1143):位於android。 app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)05-07 06:11:21.134:E / AndroidRuntime(1143):at android.app.ActivityThread.access $ 800(ActivityThread.java:135)05-07 06:11 :21.134:E / AndroidRuntime(1143):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1196)05-07 06:11:21.134:E / AndroidRuntime(1143):在android.os.Handler dispatchMessage(Handler.java:102)05-07 06:11:21.134:E / AndroidRuntime(1143):at android.os.Looper.loop(Looper.java:136)05-07 06:11:21.134:E / AndroidRuntime(1143):位於android.app.ActivityThread.main(ActivityThread.java:5017)05-07 06:11:21.134:E / AndroidRuntime(1143):位於java.lang.reflect.Method.invokeNative(本機方法) 05-07 06:11:21.134:E / AndroidRuntime(1143):at java.lang.reflect.Method.invoke(Method.java:515)05-07 06:11:21.134:E / AndroidRuntime(1143): 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)05-07 06:11:21.134:E / AndroidRuntime(1143):在com.android.internal.os.ZygoteInit.main( ZygoteInit.java:595)05-07 06:11:21.134:E / AndroidRuntime(1143):at dalvik.system.NativeStart.main(Native Method)05-07 06:11:21.134:E / AndroidRuntime(1143):引起原因:java.lang.IllegalStateException:您需要在此活動中使用Theme.AppCompat主題(或后代)。 05-07 06:11:21.134:E / AndroidRuntime(1143):位於android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:108)05-07 06:11:21.134:E / AndroidRuntime(1143) :位於android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:57)05-07 06:11:21.134:E / AndroidRuntime(1143):位於android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity .java:98)05-07 06:11:21.134:E / AndroidRuntime(1143):位於com.xyz.abc.MainActivity.onCreate(MainActivity.java:29)05-07 06:11:21.134:E / AndroidRuntime (1143):位於android.app.Activity.performCreate(Activity.java:5231)05-07 06:11:21.134:E / AndroidRuntime(1143):位於android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 05-07 06:11:21.134:E / AndroidRuntime(1143):位於android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)05-07 06:11:21.134:E / AndroidRuntime(1143):... 11年5月7日06:11:29.494:I / Process(1143):正在發送信號。 PID:1143 SIG:9

You need to use a Theme.AppCompat theme (or descendant) with this activity.

這就是您的應用程序崩潰的原因。 查看清單,找到活動或應用程序的主題,並確保它擴展了某些AppCompat主題,例如。 最新的Android Studio中自動生成的項目如下所示:
AndroidManifest.xml

<application
       ...
 android:theme="@style/AppTheme">

styles.xml

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
       ...
 </style>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM