Eigene App stürzt ab

P

pagrf

Neues Mitglied
Threadstarter
Meine selbstprogrammierte App stürzt direkt ab, nachdem ich in Android Studio auf Run App klicke. Da ich noch jung und unerfahren bin wollte ich euch höflich fragen, ob Ihr mir da helfen könntet. Schätze mal, dass sich der Fehler im Logcat findet aber weiß nicht was ich dann ändern soll.

Vielen Dank im Voraus :)

Hier der Coder der Main Activity und Logcat:


Code:
Main Activity:

package com.example.komplexefunktionentest;

import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;


import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

import com.google.android.material.navigation.NavigationView;


public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, AdapterView.OnItemSelectedListener {
    private DrawerLayout drawer;

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




        {Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        drawer = findViewById(R.id.drawer_layout);
        NavigationView navigationView=findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);

        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar,
                R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
        toggle.syncState();}





    }



    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
        switch(menuItem.getItemId()){
            case R.id.nav_info:
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new info_fragment()).commit();
                break;

            case R.id.nav_home:
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new home_fragment()).commit();
                break;


        }

        drawer.closeDrawer(GravityCompat.START);

        return true;
    }


    @Override
    public void onBackPressed() {
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }

        { Spinner spinner = findViewById(R.id.spinner1);
            ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,R.array.funktionen, android.R.layout.simple_spinner_item);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spinner.setAdapter(adapter);
            spinner.setOnItemSelectedListener(this);}
    }

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        String text = parent.getItemAtPosition(position).toString();
        Toast.makeText(parent.getContext(),text,Toast.LENGTH_LONG).show();
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {

    }
}


Logcat:

 Caused by: android.view.InflateException: Binary XML file line #45: Binary XML file line #45: Error inflating class android.support.constraint.ConstraintLayout
     Caused by: android.view.InflateException: Binary XML file line #45: Error inflating class android.support.constraint.ConstraintLayout
     Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.constraint.ConstraintLayout" on path: DexPathList[[zip file "/data/app/com.example.myapplication-DAQ-Zk1HrMXQ1xnglXKqcg==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.myapplication-DAQ-Zk1HrMXQ1xnglXKqcg==/lib/arm64, /system/lib64, /product/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at android.view.LayoutInflater.createView(LayoutInflater.java:613)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:801)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:874)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:835)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
        at com.example.myapplication.MainActivity.onCreate(MainActivity.java:28)
        at android.app.Activity.performCreate(Activity.java:7458)
        at android.app.Activity.performCreate(Activity.java:7448)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1286)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3409)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3614)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:86)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2199)
        at android.os.Handler.dispatchMessage(Handler.java:112)
        at android.os.Looper.loop(Looper.java:216)
        at android.app.ActivityThread.main(ActivityThread.java:7625)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
 
swa00

swa00

Moderator
Teammitglied
Hallo
und willkommen im Forum.

Ganz einfach : Du hast vergessen, die Constraint Libs einzubinden verwendest sie aber in deinem Source code

sind sie im Gradle eingebunden ?


Caused by: android.view.InflateException: Binary XML file line #45: Error inflating class android.support.constraint.ConstraintLayout
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.constraint.ConstraintLayout" on path: DexPathList[[zip file "/data/app/com.example.myapplication-DAQ-Zk1HrMXQ1xnglXKqcg==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.myapplication-DAQ-Zk1HrMXQ1xnglXKqcg==/lib/arm64, /system/lib64, /product/lib64]]
 
P

pagrf

Neues Mitglied
Threadstarter
Das heißt was muss ich nun machen?
 
P

pagrf

Neues Mitglied
Threadstarter
Hier schreiben sie, dass ich das hier in build.gradle einbinden soll:

dependencies {
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
}

Jedoch ist das anscheinend für meine Version veraltet was nun?
 
swa00

swa00

Moderator
Teammitglied
Erstelle dir mal ein frisches demo projekt und vergleiche mal damit
 
P

pagrf

Neues Mitglied
Threadstarter
Sieht genauso aus.
-- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
an was könnte es noch liegen?
 
J

jogimuc

Erfahrenes Mitglied
Hallo ich mische mich mal ein.
Wenn es das gleiche ist zeige uns doch mal das grade File.
Das layout könnte auch interessant sein.

Mit welchen Support arbeitest du androidx oder noch mit den alten.
Welche Compilesdk hast du.

Ob es wirklich nur am einbinden der support ligt bin ich mir nicht sicher. Deshalb bitte Layout und gradle.

Aber ein neu vom Studio erstelltes Projekt solte laufen. Wenn nicht stimmt mit den Studio, oder Rechner was nicht.
 
Zuletzt bearbeitet:
P

pagrf

Neues Mitglied
Threadstarter
Benutze androidx

Code:
build.gradle(project):

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        google()
        jcenter()
        
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}



build.gradle (Module:app)


apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.myapplication"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'com.android.support:design:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'

}



activity_main.xml:


<?xml version="1.0" encoding="utf-8"?>

<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".MainActivity"
    tools:openDrawer="start">



    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/colorPrimary"
            android:elevation="4dp"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

        <FrameLayout
            android:id="@+id/fragment_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />


            </LinearLayout>

    <com.google.android.material.navigation.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/nav_header"
        app:menu="@menu/drawer_menu" />

    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.application.spinnerexample.MainActivity">

        <Spinner
            android:id="@+id/spinner1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

    </android.support.constraint.ConstraintLayout>
</androidx.drawerlayout.widget.DrawerLayout>
 
D

deek

Stammgast
Dann musst du natürlich auch die androidx Klasse in deinem Layout verwenden:
androidx.constraintlayout.widget.ConstraintLayout

Nicht die support Variante...
 
P

pagrf

Neues Mitglied
Threadstarter
Funktioniert trotzdem nicht...
 
D

deek

Stammgast
Dann sollte es jetzt aber ein anderes Problem sein.
 
swa00

swa00

Moderator
Teammitglied
Na , da du ja ein leeres Standard-Projekt bereits erstellt hat , was auch nicht läuft , dann liegt die Vermutung nahe,
dass deine Installation nicht korrekt ist.

Was dann letztendlich nicht stimmt , können wir von hier aus auch nicht einsehen
 
J

jogimuc

Erfahrenes Mitglied
Installire dir sdk 29 im sdk Manager im android studio.
Dann erstelle dir ein eures Projekt und du wirst sehen wie das gradle aus zu sehen hat..

Und wie dann auch dein layout aussehen muss denn da ist jetzt auch einiges anders.
-- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
Ein neues Projekt mit nur 28 im sdk Studio gibt es Probleme beide sdk sollten im Manager vorhanden sein.
 
P

pagrf

Neues Mitglied
Threadstarter
Hat sich geklärt vielen Dank an alle!
 
swa00

swa00

Moderator
Teammitglied
pagrf schrieb:
Hat sich geklärt vielen Dank an alle!
Dann solltest du vielleicht auch hier erklären , was die Ursache war.
 
Oben Unten