view binding läuft nicht

  • Antworten:2
Robbiani Renato
  • Forum-Beiträge: 602

10.03.2021, 21:23:37 via Website

Hallo zusammen

Ich möchte in meinem Kotlin Projekt eine View Binding einsetzen. Aber bei der folgenden Zeile bleibt es beim Wort "databinding" hängen.

MainActivity

package ch.robbisoft.navigationdemo2

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import ch.robbisoft.navigationdemo2.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

private lateinit var binding: MainActivity


override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = ActivityMainBinding.inflate(layoutInflater)
    val view = binding.root
    setContentView(view);

// setContentView(R.layout.activity_main)
}
}

Main_Layout

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

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"
android:orientation="vertical"
tools:viewBindingIgnore="true"
tools:context=".MainActivity">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!" />

App build.cradle

plugins {
id 'com.android.application'
id 'kotlin-android'

}

android {
compileSdkVersion 30
buildToolsVersion "30.0.3"

buildFeatures {
    viewBinding true
}

defaultConfig {
    applicationId "ch.robbisoft.navigationdemo2"
    minSdkVersion 21
    targetSdkVersion 30
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
    jvmTarget = '1.8'
}

}

dependencies {

implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.3.2'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

implementation "androidx.navigation:navigation-fragment-ktx:2.3.4"
implementation "androidx.navigation:navigation-ui-ktx:2.3.4"
implementation "androidx.navigation:navigation-dynamic-features-fragment:2.3.4"
implementation "androidx.navigation:navigation-compose:1.0.0-alpha09"

}

build.cradle

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

buildscript {
ext.kotlin_version = "1.4.31"
repositories {
google()
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:4.1.2"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.4"

    // 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
}

Das Projekt habe ich auch neu gebildet.
Wo liegt der Fehler oder an was habe ich nicht gedacht?

Gruss Renato

Kommentieren
Jokel
  • Forum-Beiträge: 1.527

10.03.2021, 21:58:43 via Website

Hallo
Deine TextView hat keine ID somit wird die Klasse ActivityMainBinding nicht erstellt, da es ja in deinem Layout keine IDs gibt ist es für Gradle nicht notwendig die Klasse zu erstellen.

Hilfreich?
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 602

11.03.2021, 10:26:45 via Website

Danke Jokel für deine Antwort.
So ist es. Ich habe zu viele Schritte auf einmal gemacht. Und dann ging nichts mehr.
Ich habe das Projekt ein weiteres mal plat gemacht und nochmals sauber Schritt für Schritt von vorne begonnen. Und jetzt geht es.

Hilfreich?
Kommentieren