Multifunctional problem with instant app app

I am new to Instant App in Android and follow the link below for link: https://codelabs.developers.google.com/codelabs/android-instant-apps/#6

The apk is installed and the one function instant app works fine.

But when I try to run the multifunctional instant app it gets crash (next step is 7 from the link above).

Crash Report:

 E: FATAL EXCEPTION: main
    Process: com.bhaveshdesai.topekaapk, PID: 17609
    java.lang.IncompatibleClassChangeError: Structural change of android.support.v4.app.Fragment is hazardous (/data/app/com.bhaveshdesai.topekaapk-PhiyPZ303gxpikP7GugKyA==/oat/x86/split_topekaui.odex at compile time, /data/app/com.bhaveshdesai.topekaapk-PhiyPZ303gxpikP7GugKyA==/oat/x86/base.odex at runtime): Virtual method count off: 111 vs 150
    Landroid/support/v4/app/Fragment; (Compile time):
    Static fields:
     I ACTIVITY_CREATED
     I CREATED
     I INITIALIZING
     I RESUMED
     I STARTED
     I STOPPED
     .....

      

Gradle File Function:

apply plugin: 'com.android.feature'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.0"
    dataBinding {
        enabled true
    }

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation project(':topeka-base')
}

      

Gradle Application File:

/*
 * Copyright 2015 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

//apply plugin: 'com.android.application'
apply plugin: 'com.android.feature'
android {
    baseFeature = true

    compileSdkVersion 26
    buildToolsVersion "26.0.0"

    dataBinding {
        enabled = true
    }

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
    }

    buildTypes {
        release {
            minifyEnabled false
        }
    }

    packagingOptions {
        exclude 'LICENSE.txt'
    }
}

ext {
    supportLibVersion = "25.4.0"
    espressoVersion = "2.2.2"
    androidTestVersion = "0.5"
    hamcrestVersion = "1.3"
    junitVersion = "4.12"
}

dependencies {
    api "com.android.support:appcompat-v7:${supportLibVersion}"
    api "com.android.support:cardview-v7:${supportLibVersion}"
    api "com.android.support:design:${supportLibVersion}"
    api "com.android.support:recyclerview-v7:${supportLibVersion}"
    api "com.android.support.test.espresso:espresso-idling-resource:${espressoVersion}"
    testApi "junit:junit:${junitVersion}"

    androidTestApi("com.android.support.test.espresso:espresso-core:${espressoVersion}") {
        exclude module: "espresso-idling-resource"
        exclude group: "com.android.support"
    }
    androidTestApi("com.android.support.test.espresso:espresso-contrib:${espressoVersion}") {
        exclude module: "espresso-core"
        exclude module: "recyclerview-v7"
        exclude group: "com.android.support"
    }
    androidTestApi("com.android.support.test:rules:${androidTestVersion}") {
        exclude group: "com.android.support"
    }

    androidTestApi("com.android.support.test:runner:${androidTestVersion}") {
        exclude group: "com.android.support"
    }

    androidTestApi "org.hamcrest:hamcrest-core:${hamcrestVersion}"

    feature project(":topekaui")
    application project(":topekaapk")
}

      

Please help me to solve this problem.

+3


source to share


2 answers


After trying like this, I found the problem.

The problem is using android.support.v4.app.Fragment



After the change android.support.v4.app.Fragment

before android.app.Fragment

his work.

+5


source


IncompatibleClassChangeError

usually happens when you make an incompatible binary change to a library and don't recompile the client code. See What is causing the java.lang.IncompatibleClassChangeError? (but that may not be the real cause of your problem)

After which step do you crash?

However, I can now see that your gradle file has the following dependency implementation project(':topeka-base')

when it should contain api project(':topeka-base')

. (assuming your gradle function = topeka-ui gradle)



Topic-u / build.gradle

Replace all pre-generated dependencies with the following dependency:

dependencies {
    api project(':topeka-base')
}

      

Please double check the codelab instructions to make sure you haven't missed any steps.

+2


source







All Articles