Reputation: 21
The only changes I made were:
compose true
in buildFeaturescomposeOptions
blockapply plugin: 'com.android.application'
...
android {
compileSdk 31
defaultConfig {
applicationId "com.test.example"
...
}
buildFeatures {
dataBinding true
compose true
}
...
composeOptions {
kotlinCompilerExtensionVersion '1.0.4'
}
...
}
dependencies {
...
// Compose
implementation 'androidx.compose.runtime:runtime:1.0.4'
...
}
Here is the logcat:
java.lang.NoSuchMethodError: No virtual method Int$class-BusStop()I in class Lcom/example/test/data/LiveLiterals$DataClassesKt; or its super classes (declaration of 'com.example.test.data.LiveLiterals$DataClassesKt' appears in /data/app/com.example.test.debug-_m_f7seUKhs5ZD32lzD5Jw==/base.apk!classes15.dex)
at com.example.test.data.BusStop.<clinit>(Unknown Source:11)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:454)
at java.lang.Class.forName(Class.java:379)
at androidx.navigation.NavType$Companion.fromArgType(NavType.kt:146)
at androidx.navigation.NavInflater.inflateArgument(NavInflater.kt:165)
at androidx.navigation.NavInflater.inflateArgumentForBundle(NavInflater.kt:145)
at androidx.navigation.NavInflater.inflateAction(NavInflater.kt:316)
at androidx.navigation.NavInflater.inflate(NavInflater.kt:107)
at androidx.navigation.NavInflater.inflate(NavInflater.kt:114)
at androidx.navigation.NavInflater.inflate(NavInflater.kt:64)
at androidx.navigation.NavController.setGraph(NavController.kt:1026)
at androidx.navigation.fragment.NavHostFragment.onCreate(NavHostFragment.kt:150)
at androidx.fragment.app.Fragment.performCreate(Fragment.java:2979)
at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:473)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:257)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1828)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1752)
at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1658)
at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:323)
at androidx.fragment.app.FragmentContainerView.<init>(FragmentContainerView.kt:158)
at androidx.fragment.app.FragmentLayoutInflaterFactory.onCreateView(FragmentLayoutInflaterFactory.java:53)
at androidx.fragment.app.FragmentController.onCreateView(FragmentController.java:135)
at androidx.fragment.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:295)
at androidx.fragment.app.FragmentActivity.onCreateView(FragmentActivity.java:274)
at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1069)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:997)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1123)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
at android.view.LayoutInflater.inflate(LayoutInflater.java:682)
at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:699)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:195)
at androidx.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:303)
at androidx.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:284)
at com.example.test.activity.MainActivity.onCreate(MainActivity.kt:84)
at android.app.Activity.performCreate(Activity.java:7802)
at android.app.Activity.performCreate(Activity.java:7791)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
2021-11-02 09:22:44.552 11192-11192/com.hmproductions.sgbuses.debug E/AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Edit: Here is full build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-parcelize'
apply plugin: 'dagger.hilt.android.plugin'
apply plugin: 'androidx.navigation.safeargs'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'
android {
compileSdk 31
defaultConfig {
applicationId "com.example.test"
minSdk 24
targetSdk 31
versionCode 43
versionName "5.4"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
signingConfigs {
release {
<keystore_password>
v1SigningEnabled true
v2SigningEnabled true
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
internal {
signingConfig signingConfigs.release
minifyEnabled true
shrinkResources true
debuggable true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
applicationIdSuffix ".debug"
minifyEnabled false
shrinkResources false
debuggable true
}
}
flavorDimensions "country"
productFlavors {
A {
dimension "country"
resConfigs("en", "X", "Y", "Z")
}
B {
dimension "country"
resConfigs("en", "something")
}
}
buildFeatures {
dataBinding true
compose true
}
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
composeOptions {
kotlinCompilerExtensionVersion '1.0.4'
}
testOptions {
unitTests.includeAndroidResources = true
}
dynamicFeatures = [':dfsomething']
sourceSets {
A {
assets {
srcDirs 'src/A/assets'
}
}
B {
assets {
srcDirs 'src/B/assets'
}
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.annotation:annotation:1.2.0'
// JUnit 4 and Mockito framework
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.mockito:mockito-core:2.19.1'
testImplementation 'androidx.test:core:1.4.0'
androidTestImplementation 'androidx.test:runner:1.4.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
// Compose
implementation 'androidx.compose.runtime:runtime:1.0.4'
// Support Libraries
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.browser:browser:1.3.0'
implementation 'androidx.preference:preference-ktx:1.1.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0'
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
// Lifecycle
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.3.1"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
// Hilt
implementation "com.google.dagger:hilt-android:2.38.1"
kapt "com.google.dagger:hilt-compiler:2.38.1"
implementation 'androidx.hilt:hilt-work:1.0.0'
kapt 'androidx.hilt:hilt-compiler:1.0.0'
// Gson
implementation 'com.google.code.gson:gson:2.8.6'
// Room persistence library
implementation "androidx.room:room-runtime:2.3.0"
kapt "androidx.room:room-compiler:2.3.0"
implementation "androidx.room:room-ktx:2.3.0"
// Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.6.4'
implementation 'com.squareup.retrofit2:converter-gson:2.6.4'
implementation 'com.squareup.okhttp3:logging-interceptor:4.7.2'
// Kotlin
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2'
// Navigation
implementation "androidx.navigation:navigation-fragment-ktx:2.4.0-alpha10"
implementation "androidx.navigation:navigation-ui-ktx:2.4.0-alpha10"
implementation "androidx.navigation:navigation-dynamic-features-fragment:2.4.0-alpha10"
// Location
implementation "com.google.android.gms:play-services-location:17.1.0"
implementation "com.google.android.gms:play-services-maps:17.0.0"
// Firebase Analytics
implementation platform('com.google.firebase:firebase-bom:28.4.1')
implementation 'com.google.firebase:firebase-analytics-ktx'
implementation 'com.google.firebase:firebase-crashlytics-ktx'
implementation 'com.google.firebase:firebase-dynamic-module-support:16.0.0-beta01'
// Google Play Core
implementation 'com.google.android.play:core:1.10.2'
implementation 'com.google.android.play:core-ktx:1.8.1'
// Work Manager
implementation("androidx.work:work-runtime-ktx:2.7.0-beta01")
}
Upvotes: 1
Views: 1103
Reputation: 490
Some checks that I recommend you to do based on the official doc. https://developer.android.com/jetpack/compose/interop/adding#setup
In project build.gradle file make sure you have the the correct version of the AGP and Kotlin.
dependencies {
classpath "com.android.tools.build:gradle:7.0.0"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.21"
...
}
In your app's build.gradle file check the for:
Min Sdk to 21
compile options to Java 8
Kotlin options to 1.8
Use the latest stable version of Android Studio ArticFox https://developer.android.com/studio
Your app's build.gradle file might looks like.
android {
compileSdk 31
defaultConfig {
applicationId "com.test.example"
minSdkVersion 21
...
}
buildFeatures {
dataBinding true
compose true
}
...
// Set both the Java and Kotlin compilers to target Java 8.
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
composeOptions {
kotlinCompilerExtensionVersion '1.0.4'
}
...
}
dependencies {
...
// Compose
implementation 'androidx.compose.runtime:runtime:1.0.4'
...
}
Upvotes: 1