Android Studio - Was bedeutet 'Unable to start Activity' in Logcat

  • Antworten:12
  • Bentwortet
ute neff
  • Forum-Beiträge: 12

17.05.2015, 18:15:14 via Website

Hallo,

ich bin noch neu hier und habe eine Frage. Ich habe in Android Studio versucht ein Design zu programmieren und ich kann die App nicht starten.

Hier mal den Logcat:

05-17 16:06:39.180 2030-2030/eu.uteneff.nichtraucher.materialdesign E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: eu.uteneff.nichtraucher.materialdesign, PID: 2030
java.lang.RuntimeException: Unable to start activity ComponentInfo{eu.uteneff.nichtraucher.materialdesign/eu.uteneff.nichtraucher.materialdesign.activity.MainActivity}: java.lang.IllegalArgumentException: AppCompat does not support the current theme features
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.IllegalArgumentException: AppCompat does not support the current theme features
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:360)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:246)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
at eu.uteneff.nichtraucher.materialdesign.activity.MainActivity.onCreate(MainActivity.java:29)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
            at android.app.ActivityThread.access$800(ActivityThread.java:151)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5257)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

Weiss jemand wo ich den Fehler suchen muss? Ich steige da nämlich nicht durch.

Vielen Dank schon mal.

Liebe Grüße
Ute

— geändert am 18.05.2015, 14:35:43

Antworten
Gelöschter Account
  • Forum-Beiträge: 2.492

17.05.2015, 18:29:01 via Website

    Caused by: java.lang.IllegalArgumentException: AppCompat does not support the current theme features
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:360)
...
    at eu.uteneff.nichtraucher.materialdesign.activity.MainActivity.onCreate(MainActivity.java:29)  

Da fängt glaub ich der wichtige Teil an. Schau mal in der MainActivity in der Line 29 was dort steht.

— geändert am 17.05.2015, 18:29:15

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.05.2015, 18:38:27 via App

Hallo ute neff,

Herzlich willkommen bei uns im Forum :)

Bitte beachte, dass Threads mit nicht aussagekräftigem Titel bei uns üblicherweise den Regeln entsprechend entfernt werden. Ich bitte dich daher, deinen Threadtitel innerhalb der nächsten 24 Stunden, spätestens jedoch bei deinem nächsten Besuch noch etwas aussagekräftiger zu gestalten (Hierfür einfach unter deinem ersten Beitrag auf 'bearbeiten' klicken, dann kannst du oben noch mal den Titel anpassen)

Danke :)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
ute neff
  • Forum-Beiträge: 12

18.05.2015, 11:17:22 via Website

Hallo Pascal,

ich hoffe, ich habe den Thread aussagekräftiger geändert?!

Hallo Lars,

ich habe mal in der Zeile 29 geschaut, aber so richtig entdecke ich da den Fehler nicht.

Aus der MainActivity:

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

Zeile 29 ist die setContentView. In der activity_main wird mir auch kein Fehler angezeigt.
Bin etwas ratlos.

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.957

18.05.2015, 11:33:45 via App

Hallo ute neff,

herzlich willkommen hier im Forum (*)

dein Titel ist noch immer nicht aussagekräftig, Versuch es doch bitte mit Hilfe dem von Pascal geposteten Link.

Zu deinem Problem: du hast anscheinend in der Androidmanifest.xml das falsche Theme ausgewählt, welches nicht zur Activity passt.

— geändert am 18.05.2015, 11:42:34

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Antworten
Lucas
  • Forum-Beiträge: 717

18.05.2015, 14:15:57 via App

Titelvorschlag: "Was bedeutet 'Unable to start Activity' in Logcat"

Zum Fehler:
Könntest du die styles.xml senden und sagen, von welcher Klasse deine Activity erbt?

Antworten
ute neff
  • Forum-Beiträge: 12

18.05.2015, 14:44:16 via Website

Danke Lucas für den Tipp mit dem Titel :)

Hier meine styles.xml:

<style name="MyMaterialTheme" parent="MyMaterialTheme.Base">

</style>

<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:textColorPrimary">@color/textColorPrimary</item>
    <item name="android:windowBackground">@color/windowBackground</item>


</style>

Ich kopiere auch noch die MainActivity, weiss nicht so recht was Du meinst mit der Klasse erben:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

import eu.uteneff.nichtraucher.materialdesign.R;

public class MainActivity extends ActionBarActivity implements FragmentDrawer.FragmentDrawerListener {

private static String TAG = MainActivity.class.getSimpleName();

private Toolbar mToolbar;
private FragmentDrawer drawerFragment;

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

    mToolbar = (Toolbar) findViewById(R.id.toolbar);

    setSupportActionBar(mToolbar);
    getSupportActionBar().setDisplayShowHomeEnabled(true);

    drawerFragment = (FragmentDrawer)
            getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
    drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), mToolbar);
    drawerFragment.setDrawerListener(this);


    displayView(0);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.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();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    if(id == R.id.action_search){
        Toast.makeText(getApplicationContext(), "Search action is selected!", Toast.LENGTH_SHORT).show();
        return true;
    }

    return super.onOptionsItemSelected(item);
}

@Override
public void onDrawerItemSelected(View view, int position) {
    displayView(position);
}

private void displayView(int position) {
    Fragment fragment = null;
    String title = getString(R.string.app_name);
    switch (position) {
        case 0:
            fragment = new HomeFragment();
            title = getString(R.string.title_home);
            break;
        case 1:
            fragment = new FriendsFragment();
            title = getString(R.string.title_friends);
            break;
        case 2:
            fragment = new MessagesFragment();
            title = getString(R.string.title_messages);
            break;
        default:
            break;
    }

    if (fragment != null) {
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.container_body, fragment);
        fragmentTransaction.commit();


        getSupportActionBar().setTitle(title);
    }
}

}

Liegt es vielleicht auch daran, dass die ActionBarActivity im Code durchgestrichen ist?

Antworten
Lucas
  • Forum-Beiträge: 717

18.05.2015, 14:46:47 via App

Versuche einmal ActionBarActivity durch AppCompatActivity zu ersetzen.

ActionBarActivity ist deprecated, also outdated.

Antworten
ute neff
  • Forum-Beiträge: 12

18.05.2015, 14:58:02 via Website

Ah Danke Lucas und Pascal.

Ich hatte in der styles.xml "android:windowNoTitle" stehen. Als ich das "android" gelöscht habe, ging die App.

Toll - vielen Dank.

LG Ute

Antworten
Lucas
  • Forum-Beiträge: 717

18.05.2015, 14:59:48 via App

Schön, dass wir dir helfen konnten.

  1. Setze doch deinen Thread auf beantwortet.
  2. Versuche trotzdem AppCompatActivity anstatt ActionBarActivity zu verwenden.

Antworten
ute neff
  • Forum-Beiträge: 12

18.05.2015, 15:00:33 via Website

Das habe ich auch geändert - nochmals Danke.

Antworten
Lucas
  • Forum-Beiträge: 717

18.05.2015, 20:11:40 via App

ute neff

Ich kopiere auch noch die MainActivity, weiss nicht so recht was Du meinst mit der Klasse erben:

extends AppCompatActivity
bedeutet soviel wie
erbt von AppCompatActivity

Antworten