【问题标题】:Android Dynamic Feature INSTALL_FAILED_INVALID_APKAndroid 动态功能 INSTALL_FAILED_INVALID_APK
【发布时间】:2020-01-13 03:54:28
【问题描述】:

我正在尝试向现有应用程序添加一些功能。该应用程序的 build.gradle 包含几个 productFlavors 和几个 buildTypes。我已尝试在我的动态功能模块中尽可能地复制它,但我似乎无法从 Android Studio 正确安装它。

我按照https://github.com/googlearchive/android-dynamic-features 中的示例设置了我的功能模块,因此我的项目结构类似于

app
features/module/build.gradle
build.gradle

我在 app build.gradle 中添加了 buildType 和 flavor

defaultConfig {
    minSdkVersion 24
    targetSdkVersion 28
 }
dynamicFeatures = [":features:module"]
buildTypes{
    myBuildType {
        debuggable true
        multiDexEnabled true
    }
}

flavorDimensions "blah"
productFlavors{
        arm64 {
            ndk {
                abiFilters "arm64-v8a"
            }
            ext {
                abiVersionCode = 5
            }
            matchingFallbacks = ['defaultFlavor']
        }
}

在模块 build.gradle 中,我尝试将其与:

defaultConfig {
    minSdkVersion 24
    targetSdkVersion 28
    }
buildTypes {

    dynamic {
        multiDexEnabled true
        debuggable true
    }
}


flavorDimensions "blah"
productFlavors {
    arm64 {
        ext {
            abiVersionCode = 5
        }
    }
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(':app')
}

在我的 Run->Edit Configuration 屏幕中,我在要部署的动态功能部分下的基本应用程序和模块旁边放置了一个复选框。我正在尝试在运行 Android 9.0 的诺基亚 6 上对此进行测试。我从构建中得到的唯一输出是:

01/12 22:39:25: Launching 'app' on HMD Global TA-1025.
Installation did not succeed.
The application could not be installed: INSTALL_FAILED_INVALID_APK
The APKs are invalid.

【问题讨论】:

  • 自我注意- 以后记得查看android studio日志,以获取更多信息。

标签: android android-studio


【解决方案1】:

这只是发生在我身上。 原来我为不同的模块设置了不同的风格。
尝试在View > Tool Windows > Build Variants 下选择相同的变体。

【讨论】:

    【解决方案2】:

    请检查那些东西

    1) 确保 AndroidManifest.xml 包名与 build.grade applicationId
    2) 检查你的 Androidmanifest.xml 中的包名,看是否以一个空开头 空格字符。像 " com.example.test" 而不是 "c​​om.example.test" 并确保在您的包名中至少包含一个点 像 "com.exampletest" 而不是 "c​​omexampletest" https://code.google.com/p/android/issues/detail?id=55841
    3)“构建”>“清理项目”
    4)重启安卓系统

    【讨论】:

    • 是的,这可能是原因。
    • 我没看错 - 你是说动态功能清单必须与 build.gradle applicationId 具有相同的包名称,并且同样适用于基本 App?这个项目确实有一个脚本,对基本应用程序的 AndroidManifest.xml 进行了一些修改我尝试在没有基本应用的情况下部署动态功能 APK 时遇到同样的错误,并且无法弄清楚如何一次“adb install”两个 APK
    • 我相信这可能是问题所在。我有一个 DSL 正在修改清单名称,我将其删除。
    【解决方案3】:

    试试Edit Configurations > Installations Options > Deploy APK from app bundle

    【讨论】:

      【解决方案4】:

      我找到了解决我的问题的解决方案。确保您的库和类路径是最新的。我有一个过时的 firebase 插件类。使用新的 graddle 时出现此问题。更新类路径后,一切正常。

      就我而言。我改变了这个

      classpath 'com.google.firebase:firebase-plugins:1.1.0'

      到这里

      classpath 'com.google.firebase:perf-plugin:1.3.1'

      【讨论】:

        【解决方案5】:

        当我在我的应用程序中使用 Flavors(构建变体)时,我遇到了同样的问题。 我的解决方案是在“构建变体”选项卡中选择另一个构建变体(例如,发布而不是调试风格),然后选择正确的构建变体,然后清理,重建

        我在这里找到了这个解决方案:https://stackoverflow.com/a/65630971/6543967

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-17
          相关资源
          最近更新 更多