Uploading instant app to Google Play Console fails

2019-05-29 00:03发布

问题:

I'm working on getting a refactored app up to the pre-release channel in the Google Play console. When I attempt to upload the zip file I get the error "Upload failed. We could not save your changes. Please try again." I've been working on this for many days and feel like I've run out of options to try. Has anyone else experienced this specifically related to instant apps? My app has a base_feature, main_feature, and detail_feature.

I have completed the following:

  • The build.gradle files were configured in the same way that Google's sample project is.
  • I am attempting to use proguard by setting minifyEnabled to true for each feature module. My proguard rules are configured for each feature and I have no warnings or errors while building.
  • Each base + feature APK is under 4MB.
  • I have tried uploading in incognito mode as well as another browser without success. I can upload my regular APK (also proguarded) just fine.
  • Both the installed APK and the instant app have the same version code/name and bear the same package.

I am at a loss as to what could be causing this error. Typically the console outputs a reason why the upload failed. Is there anything in particular that needs to match between the full uploaded APK and the instant app APK? Hopefully there is a simple solution that I am overlooking. Any help would be very appreciated!

EDIT

base:

dependencies {
    api(...)
    api(...)
    api(...)
    api(...)

    feature project(':home')
    feature project(':detail')
    application project(':apk')
}

home:

dependencies {
    api project(':base')
    api(...)
}

detail:

dependencies {
    api project(':base')
    api(...)
}

instant app:

dependencies {
    implementation project(':base')
    implementation project(':home')
    implementation project(':detail')
}

apk:

dependencies {
    implementation project(':base')
    implementation project(':home')
    implementation project(':detail')
}

回答1:

I was able to solve my problem by moving ALL my external library references (API/implementation) to the base feature. It appears that each feature is not able to host libraries that are only used in that specific feature.

Hopefully there can be an improvement in this area both in the console to better indicate what's wrong with a build but also with the way instant apps are built to better support modularization and reduce APK size.