如何在调试时修复小米/红米/miui 的 INSTALL_PARSE_FAILED_NO_CERTIFICATES?

Nan*_*R.M 4 debugging android adb android-studio flutter

使用我的 xiaomi redmi note 7 (pie) 时,我只收到此错误消息。我以前使用的手机是 redmi 2,但仍然可以使用。我尝试从 flutter 或 android studio 项目中调试仍然遇到相同的错误。当我想尝试调试我的朋友手机三星 A50 时,它运行良好。我正在尝试任何东西这个答案中但没有一个对我有用。

来自颤振

Error: ADB exited with exit code 1
Performing Streamed Install

adb: failed to install D:\pks\flutter\delisia\build\app\outputs\apk\app.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/vmdl1357086466.tmp/base.apk using APK Signature Scheme v2: SHA-256 digest of contents did not verify]
Error launching application on Redmi Note 7.
Run Code Online (Sandbox Code Playgroud)

来自 Android Studio

11:12 AM    Session 'app': Installation did not succeed.
                    The application could not be installed: INSTALL_PARSE_FAILED_NO_CERTIFICATES
                    Retry

11:14 AM    Executing tasks: [:app:assembleDebug] in project D:\kuliah\Aplikasi\MoLearn

11:14 AM    Gradle build finished in 7 s 93 ms

11:14 AM    Failed to commit install session 652017913 with command cmd package install-commit 652017913. Error: INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/vmdl652017913.tmp/0_app-debug using APK Signature Scheme v2: SHA-256 digest of contents did not verify

11:14 AM    Session 'app': Installation did not succeed.
                    The application could not be installed: INSTALL_PARSE_FAILED_NO_CERTIFICATES
                    Retry
Run Code Online (Sandbox Code Playgroud)

所以,我可以用我的手机调试,我只能从我的模拟器 nox 调试,而且速度很慢。但我不知道为什么我的手机 redmi note 7 上安装了该应用程序,当我尝试更新某些代码时,该应用程序会自动卸载,并且错误再次显示。

我可以从 Play 商店安装我自己的应用程序,但它是一个发布应用程序。我无法从中调试。

Chr*_*ris 10

就我而言,当我尝试在发布模式 ( flutter run --release) 下运行 flutter 时,我收到此错误,这是因为我的应用程序级别构建 gradle (..android/app/build.gradle) 未正确设置。

您需要确保“android”对象内有“signingConfigs”对象,并且还设置了相应的“buildType”

例如

android {
    compileSdkVersion 30

    lintOptions {
        disable 'InvalidPackage'
    }

    signingConfigs {
        release {
            storeFile file('<path to key store file>')
            storePassword '<key store password>'
            keyAlias '<key alias>'
            keyPassword '<key password>'
        }
        debug {
            storeFile file('<path to key store file>')
            storePassword '<key store password>'
            keyAlias '<key alias>'
            keyPassword '<key password>'
        }
    }  

    defaultConfig {
        applicationId "XXXXXXXXXXX"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
        debug {
            signingConfig signingConfigs.debug
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Ayy*_*air 6

android/app/build.gradleandroid 部分的底部,添加构建类型:

android{
  ...
   buildTypes {
    release {
        signingConfig signingConfigs.debug
    }
   }
}
Run Code Online (Sandbox Code Playgroud)

如果发布,您可能需要将 .debug 更改为 .release。它解决了我的问题:D


小智 5

转到电话开发人员设置。

并通过 USB 打开/关闭验证应用程序 在此处输入图片说明


小智 0

如果你使用Android Studio并使用Nox作为模拟器,至少要调整SDK版本!如果NOX使用SDK版本22,请将gradle设置中的最小SDK更改为版本22!希望对你有帮助:D