在android中失败[INSTALL_FAILED_USER_RESTRICTED:无效的apk]

问题描述 投票:5回答:4

我使用的是Android Studio 3.0.1。 当我试图运行应用程序时

INSTALL_FAILED_USER_RESTRICTED:无效的apk

发生错误。

我也禁用了Instant Run。

enter image description here

我再次运行应用程序,但同样的错误发生。

04/04 10:59:08:启动应用程序 $ adb push G:\ Android \ Fundraiser \ BuyForFund \ app \ build \ outputs \ apk \ debug \ app-debug.apk /data/local/tmp/com.android.buyforfund $ adb shell pm install -t -r“/data/local/tmp/com.android.buyforfund” 失败[INSTALL_FAILED_USER_RESTRICTED:无效的apk]

$ adb shell pm uninstall com.android.buyforfund DELETE_FAILED_INTERNAL_ERROR 安装APK时出错

android android-studio apk adb failed-installation
4个回答
3
投票

我有同样的问题,我在手机上向谷歌发送反馈,会说这是一个错误。在我的情况下,最好的解决方案是取消该对话,然后重新运行,它取消后始终在第二次尝试。

根据您使用的手机,我会假设问题出在手机(谷歌)方面。目前还不确定是否存在Google常见问题或特定硬件手机,我使用的是“小米Redmi 5”。

禁用即时运行实际上在我的情况下工作,但这不是它的目的,这只是一个肮脏的解决方法。

编辑:确保您没有类似的东西

android:debuggable="false"

在你的清单中。


2
投票

确保您已启用以下选项:

设置>其他设置>开发人员选项

  1. USB调试
  2. 通过USB安装
  3. USB调试(安全设置)

0
投票

如果你的目标是android'P',那么你的build.gradle文件应该是这样的

android {
    compileSdkVersion 'android-P'
    defaultConfig {
        applicationId "xyz.com"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

targetSdkVersion必须为27才能在android'P'下运行您的应用程序,否则该应用程序只能在'P'及以上运行。


0
投票

在Mi 9手机上使用Xiaomis MIUI 10时,没有其他答案适用于我。

除了通常喜欢在开发者选项中启用USB debuggingInstall via USB,其他问题的答案建议关闭MIUI optimization。虽然这样做了,但我对此并不满意。所以我做了一些实验并得出以下结论:

所描述的错误仅在将相同的应用程序部署到该电话时每隔一次发生。

为了解决这个问题,我可以再次点击Run /按Shift + F10或拔掉插头并再次插入该手机。这似乎都不可行。所以我做了一些挖掘,当你每次构建应用程序时增加versionCode文件中的build.gradle时,MIUI 10不会抱怨,让你按照预期安装你的应用程序。甚至Android工作室Instant Run工作。虽然手动执行此操作同样令人讨厌。

所以我采取了一些想法从versionCode自动增加this question并修改了build.gradle(你的模块的那个,而不是你项目的那个)。您可以按照以下简单步骤执行相同操作:

更换

defaultConfig {
    applicationId "your.app.id" // leave it at the value you have in your file
    minSdkVersion 23 // this as well
    targetSdkVersion 28 // and this
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

def versionPropsFile = file('version.properties')
def value = 0

Properties versionProps = new Properties()

if (!versionPropsFile.exists()) {
    versionProps['VERSION_MAJOR'] = "1"
    versionProps['VERSION_MINOR'] = "0"
    versionProps['VERSION_PATCH'] = "0"
    versionProps['VERSION_BUILD'] = "0"
    versionProps.store(versionPropsFile.newWriter(), null)
}

def runTasks = gradle.startParameter.taskNames
if ('assembleRelease' in runTasks) {
    value = 1
}

if (versionPropsFile.canRead()) {

    versionProps.load(new FileInputStream(versionPropsFile))

    versionProps['VERSION_PATCH'] = (versionProps['VERSION_PATCH'].toInteger() + value).toString()
    versionProps['VERSION_BUILD'] = (versionProps['VERSION_BUILD'].toInteger() + 1).toString()

    versionProps.store(versionPropsFile.newWriter(), null)

    // change major and minor version here
    def mVersionName = "${versionProps['VERSION_MAJOR']}.${versionProps['VERSION_MINOR']}.${versionProps['VERSION_PATCH']}"

    defaultConfig {
        applicationId "your.app.id" // leave it at the value you have in your file
        minSdkVersion 23 // this as well
        targetSdkVersion 28 // and this
        versionCode versionProps['VERSION_BUILD'].toInteger()
        versionName "${mVersionName} Build: ${versionProps['VERSION_BUILD']}"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
}
else {
    throw new GradleException("Could not read version.properties!")
}

现在,每次你通过击中RunInstant Run来构建你的应用程序,你的versionCode / VERSION_BUILD会增加。如果你建立一个释放你的VERSION_PATCH增加你的versionNamex.y.z改为x.y.z+1(即1.2.3转向1.2.4)。要更改VERSION_MAJORx)和VERSION_MINORy),请编辑version.properties文件,您可以在模块文件夹中找到该文件。如果您没有更改模块名称,则称为app,因此该文件位于app/version.properties

© www.soinside.com 2019 - 2024. All rights reserved.