Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android App Users Get "App not installed" When Attempting to Update

Tags:

UPDATE: To those who asked about which error codes the users are receiving: there are no error codes. It just opens a blank, post-installation page that says "The app was not installed" with a big 'X' next to it. It's possible different versions of Android could have different messages. There is no indication for what went wrong during the installation.

UPDATE 2: Some users reported that they receive error code "-504" when they try to install/update from the Play Store, and the "app not installed" message when manually trying to install the .apk. I don't know what correlation this error has with users being unable to install, but the solutions from the only 2 questions on SO on this topic did not fix anything for me. I've included the updated manifests and build files.

UPDATE 3: It appears as users report this issue in versions after IAB has been successfully installed, which further de-legitimatizes the concept that this issue is caused by introducing IAB.

UPDATE 4: It looks like the problem is with old users trying to update to a new version, and not with new users. With that in mind, there is a high likelihood that this issue is result of INSTALL_FAILED_UID_CHANGED. Looking through the version history, the significant change I made in the problematic version that users cannot update from is removing drawables that I no longer intended of using.

Asking users to go through the procedure to fix this isn't plausible. If there is a solution that I can enforce which would fix it for faulty users, wonderful... if not, the least I can do at this point is damage control and ensure this doesn't happen in the future.

NOTE: Below is the original post speculating that the problem is the result of introducing IAB into the app. Since then, it has become more and more unlikely for that to be the cause. Regardless, the post still has relevant information.

------------------------------------------------------------------------------------------

Original Title: Android App Users Get "App not installed" After Introducing IAB

I recently introduced IAB in my app that was published on Google Play. After a while, I've started to get reports from some users that they get an "installation unsuccessful" error when they try to install or update it. What makes me think it's caused by introducing IAB is that one particular long-time user e-mailed me that when he's attempting to update to the version with IAB, the installer mentions that new permissions were introduced and requires the user's permission. Once granted, it says that the app failed to install.

I've done some Googling and it appears to be a problem from their end, one user even tried to manually install an .apk with said permissions removed without any success. I wan't to make sure that it's not something I've done wrong, but an inevitability that I have to accept with some users.

Note that the vast majority has no problem of installing the app, and I haven't received any reports of this until after IAB was introduced. It wouldn't bother me so much were it a small amount of lost users, but the problem is, those users hurt my app's rating. Users have also mentioned that they can install apps, excluding my own, perfectly well.

I don't rule out the possibility that users may have been getting these errors even before IAB was introduced, and the linkage could be a mistaken one.

Here is my manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest package = "com.jjsoftware.fullscientificcalculator"
      xmlns:android = "http://schemas.android.com/apk/res/android">

<uses-permission android:name = "android.permission.VIBRATE"/>
<uses-permission android:name = "com.android.vending.BILLING"/>

<application
    android:allowBackup = "true"
    android:fullBackupContent = "true"
    android:icon = "@drawable/logo"
    android:label = "@string/app_name">
    <activity
        android:name = ".MainActivity"
        android:hardwareAccelerated = "false"
        android:label = "@string/app_name"
        android:screenOrientation = "portrait"
        android:theme="@style/AppTheme">
        <intent-filter>
            <action android:name = "android.intent.action.MAIN"/>
            <category android:name = "android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity
        android:name = ".SettingsActivity"
        android:theme = "@style/PreferencesTheme">
        <intent-filter>
            <action android:name = ".SettingsActivity"/>
            <category android:name = "android.intent.category.PREFERENCE"/>
        </intent-filter>
    </activity>
</application>

Here is the Gradle file:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.jjsoftware.fullscientificcalculator"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 102
        versionName "1.679"
    }

    sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] } }
}

dependencies {
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.google.android.gms:play-services-ads:8.4.0'
    compile 'com.android.support:gridlayout-v7:23.2.1'
    compile files('libs/exp4j-0.4.5.jar')
    compile files('libs/EJML-core-0.28.jar')
    compile files('libs/EJML-dense64-0.28.jar')
    compile files('libs/Jama-1.0.3.jar')
    compile files('libs/EJML-simple-0.28.jar')
}

And, if need be, the top-level build:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}
like image 912
daedsidog Avatar asked Mar 30 '16 16:03

daedsidog


People also ask

Why does my Android keep saying App not installed?

You can reset App permissions to combat the Android App not installed error by Visiting “Settings” and then selecting “Apps”. Now access the Apps menu and hit “Reset App Preferences” or “Reset application permissions”. This will allow third-party apps to get installed on your device.


1 Answers

There is a typo in the manifest file on line android:largeHeap="true">>. xml line ends with >>. This may be causing the error.

like image 83
suku Avatar answered Sep 23 '22 07:09

suku