I recently fixed a bug in a demo version of my app. It's not out on the store yet, we're still testing.
The phone doesn't like it however : it tells me there's already an APK called that. That's true, but why doesn't it suggest to just replace it ?
And in the "Apps" settings screen, "Force quit" and "Uninstall" are greyed out - unclickable, can't do that for my app. Yes, I did quit my app, and the background service associated with it. Because yes, my app does require the following permissions :
Full Internet access
System tools : prevent sleeping, disable key lock, auto-start on boot
Hardware controls : audio volume
Storage : SD card
Any clues or things to do/check before uninstalling ? This other (empty) app that's also installed (an app I made when I was discovering Android for testing purposes) was uninstalled fine ...
Thanks in advance,
Charles
Possible causes I know of for it not offering to replace it:
You changed the package name, but you are using the same file name
for the APK.
You signed the package with a different keystore or key. Note that when clicking Run in Eclipse, it uses a debug keystore rather than the one you would use when exporting it for the store.
I'm not sure why it would disallow force quitting and uninstall. Maybe you just need to wait a few more seconds for that screen to finish loading, and the buttons will become active.
You can try opening a console and using adb uninstall com.yourpackagename to uninstall the old version, and see if it gives you any errors.
Got it !
First of all, see Tenfour's answer on impossible replacement. As for impossible uninstallation :
The "Lock Screen" permission makes my app a Device Administrator. And Device Admins can't be uninstalled !
The app can be downgraded in Settings -> Security -> Device Admins.
That's all folks ! Thanks for the help.
Related
I followed steps from this tutorial:
Exported .apk can install on all my devices, but when I uninstalled and then installed my phone said 'App not installed'. My clients had the same problem even from the first installation.
There are no multiple users on my phone or any other so I can't do 'uninstall for all users'.
After that I tried to export from Android Studio with same keystore and passwords and it just created more problems with the same initial problem and that's 'App not installed'.
After that I resolved many problems that Android Studio made with updates and I still can't export it properly from Visual Studio Code.
My head hurts.
Edit: Now I've tried jarsigner and zipalign and it still doesn't want to install.
EDIT2: Issue goes away when I move .apk to internal storage. Is this a legit solution?
This is a very open ended question and it's quite hard to give a clear answer without further information. But usually 'App not installed' error happens because of following reasons (among others)
Insufficient storage
Corrupted/Contaminated App file
SD Card not mounted in the device
Storage location
Corrupt storage
Application Permission
Incorrect file
things you can try
Do the tried and tested "Have you turned it off and on again"?
Delete unnecessary files/Apps
Reset All the App Preference
Go to Settings on your Android device.
Open Apps or Apps manager.
check for All Apps.
Tap on the menu icon.
Click on ‘Reset App Preferences’.
Clear Data and Cache of Package Installer
Open setting on your Android device.
Look for the option called Apps or Manage apps and tap on it.
Check for the Package Installer App under system Apps
You will find two option of Clear data and Clear cache. (For Android Marshmallow 6.0 users check for option Storage to clear data and cache)
Clear the data and cache to solve the problem.
You could also try changing the bundle id and see if that would do the trick
Hope this helped
I need to setup an environment in an android device where only white listed apps are allowed to launch. The environment should
prevent user from installing new app and uninstalling existing app
prevent access to settings
prevent access to file directory
The Owner App are supposed to allow
download of white listed APK from a designated server within it's network
user can update white listed APK by downloading and installing it
user can launch multiple white listed app
I have looked through Android's Device Ownership and Screen Pinning references and APIs but couldn't find a solution to my above stated problem. Any pointers?
What do you think of this? http://www.andreas-schrade.de/2015/02/16/android-tutorial-how-to-create-a-kiosk-mode-in-android/
UPDATE:
Well, I've decided to use vendor like MobileIron. Thanks for the input regardlessly =)
I'm trying to do a test-download of my first app from a non-Market web server (mine). I placed a signed APK on the server, browsed to it from my Nexus-S browser and clicked. I get a brief message about downloading, but then zilcho, no install, no nothing. And yes, I enabled "Unknown Sources" in the settings. Each time I try this, a small red circle appears at the top-left of my screen with an incrementing number.
Should this work? Am I doing something wrong?
Note: I don't want to use ADB or an App installer program if avoidable (I want to let unsophisticated beta testers install it).
Thanks,
John
I believe this is done by the manufacturer. I've seen it on a few phones.
Try using a different ROM (like cyanogen) if you're rooted.
Well, I figured it out myself (Duh), it was operator error.
The answer is that I didn't understand how download-install works. After downloading APK, I had to go to "Downloads" on my phone and select the file to install. It's all good now.
-John
I was wondering if it is possible to uninstall the default Settings application on an Android emulator. I have already tried "adb uninstall com.android.settings" but it comes up with Failure.
Thanks
com.android.settings is not a user installable application. It lives in the system folders and as such is not user removable. If you rooted your device you could remove it but I suspect many applications rely on it and removing it will cause problems. That said root your emulator and try: How to get root access on Android emulator?
You can always create a new emulator image if you mess up the rooted one.
I haven't tried, but you can remove default applications with apps such as Titanium Backup if you're a rooted user.
** EDIT **
Overlooked the emulator part of the question - apologies.
I would advise against uninstalling it, as I'm not sure you can get it back - it's one of those things that you def need on your phone.
At least do a backup (Nandroid or otherwise) before removing it, so you can get it back easily if you make a mistake/need it again.
I've accepted for a while now that it's impossible to silently install an application on Android - that is, to have a program install an application bundled as an APK without providing the standard OS installation prompt and going through the app installer activity. But now I've picked up a copy of the Appbrain fast web installer, and it does exactly this.
How on earth is this possible? :D
I think the clue is pretty much in this statement I found here in the FAQ.
The fast web install worked for me yesterday, but it doesn't work anymore today. What's wrong?
The permission to install apps directly on your phone needs to be refreshed once every few days. Go back to the "Fast Web Install" app on your phone and click the button to give us the permission again. We are working on a future update that will optionally automatically refresh this setting.
I presume this is very similar to what Google does in the kill switch. I am assuming that the kill switch is an application on my device, just hidden from me. When Google wants to remove an application, it silently uninstalls it without asking for our permission. I am very sure this security hole is of their making. Now we just need to figure that out... =D
You can ( in a very hackish way ) install apps silently using adb. You have to enable USB Debugging, but just push the APK to /data/app. ie:
adb push MyApp.apk /data/app
or -
adb install MyApp.apk (cleaner way)
The second command MAY prompt for an installation, I don't remember off the top of my head.
IF you can work out what the standard installer does when it installs, you can replicate that behaviour in your app, however yours would need quite extensive permissions to do everything properly.
Seriously, don't even try.