web-dev-qa-db-ja.com

android)の失敗[INSTALL_FAILED_USER_RESTRICTED:無効なapk]

Android Studio3.0.1を使用しています。
アプリを実行しようとしているとき

INSTALL_FAILED_USER_RESTRICTED:無効なapk

エラーが発生します。

インスタントランも無効にします。

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 Shellpmアンインストールcom.Android.buyforfund
DELETE_FAILED_INTERNAL_ERROR
APKのインストール中にエラーが発生しました

6
Unnati Patadia

私は同じ問題を抱えています、私は私の電話でグーグルにフィードバックを送りました、それはバグだと言うでしょう。私の場合、最善の解決策は、そのダイアログをキャンセルしてから再実行することです。キャンセル後、2回目の試行で常に機能します。

使用している電話によっては、問題は電話(Google)側にあると思います。一般的なGoogleの問題なのか、特定のハードウェア電話なのかはまだわかりませんが、「XiaomiRedmi5」を使用しています。

私の場合、インスタント実行を無効にすることは実際には機能しましたが、それはその目的ではなく、単なる汚い回避策です。

編集:あなたがのようなものを持っていないことを確認してください

Android:debuggable="false"

マニフェストで。

4
user3630061

Mi9電話でXiaomisMIUI 10を使用した場合、他の回答はどれもうまくいきませんでした。

通常(開発者向けオプションでUSB debuggingInstall via USBを有効にするなど)に加えて、他の質問からの回答はMIUI optimizationをオフにすることを提案しました。これでうまくいきましたが、私はそれに満足していませんでした。それで私はいくつかの掘り下げを行い、次の結論に達しました:

説明されているエラーは、アプリを2回目にデプロイしたときにのみ発生し、その後、同じアプリをその電話にデプロイしたときに1回おきに発生し続けます。

これを解決するには、Runを押すか、Shift + F10をもう一度押すか、その電話のプラグを抜き差しします。これはどれも実行可能ではないようです。そこで、もう少し掘り下げてみたところ、アプリをビルドするたびにbuild.gradleファイルのversionCodeを増やしていると、MIUI 10は文句を言わず、アプリをインストールできるようになりました。あなたが期待するのと同じように。 Android Studios Instant Runでも機能します。これを手動で行うのも、同じように面倒です。

そこで、versionCodeこの質問 から自動インクリメントし、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!")
}

これで、RunまたはInstant Runを押してアプリをビルドするたびに、versionCode/VERSION_BUILDが増加します。リリースをビルドすると、VERSION_PATCHが増加し、versionNamex.y.zからx.y.z+1に変更されます(つまり、1.2.31.2.4に変わります)。 VERSION_MAJORx)とVERSION_MINORy)を変更するには、モジュールフォルダにあるversion.propertiesファイルを編集します。モジュール名を変更しなかった場合はappと呼ばれるため、このファイルはapp/version.propertiesにあります。

3
Tobias Wicker

次のオプションが有効になっていることを確認してください。

設定>追加設定>開発者向けオプション

  1. USBデバッグ
  2. USB経由でインストール
  3. USBデバッグ(セキュリティ設定)
2
0xAliHn

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'
        }
    }
}

Android 'P'より下でアプリを実行するにはtargetSdkVersionが27である必要があります。そうでない場合、アプリは 'P'以上でのみ実行できます。

0
Smeet