My developer made a mistake while creating the first version of the app. He didn't specifically include version number 1 in the first app. Now, we are going to update the app but the issue is, if we use 1.1 as android:versionCode, will this be recognized by Google play market as a update? My dev thinks it won't work properly since we didn't include version in the first app. My worst fear is Google might think its a new app altogether and duplicate it.
Any way out? Please help.
Google makes app listing based on the package name, not versions. Additionally, Google Play wouldn't have let you upload the app without a versionCode. You cannot have a versionCode like 1.1 because it must be an integer. The only rule with versionCodes is that the new update's code must be greater than the old one.
Also, versionCodes and versionNames are two different things. versionCodes are used by app stores to track updates, while versionNames are more common identifiers like 1.0.0 etc. versionCodes are limited to being integers, while versionNames can be alphanumeric. The below code snippet should give you an example:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.package.name"
android:versionCode="2"
android:versionName="1.1">
<application android:icon="#drawable/icon" android:label="#string/app_name">
...
</application>
</manifest>
See this link for more details on versioning your app.
Related
I am using open_filex package especially to avoid this problem. I am confused because the permission is nowhere to be found in my particular Android manifests and manifest merge file.
I have tried to manually remove permission by tool:remove
tried open_file_safe library as well. Just stopped passing reviews for some reason, maybe something is connected to newer Android version (13).
Add the following line to your AndroidManifest in order to explicity remove the REQUEST_INSTALL_PACKAGES permission
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" tools:node="remove"/>
and on your manifest tag add
xmlns:tools="http://schemas.android.com/tools"
so that it looks something like this:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="*" xmlns:tools="http://schemas.android.com/tools">
Then build your apk or aab and then upload it Google Play Store and then submit the build for release to ALL the tracks; Internal testing, Closed testing(Alpha & Track), Open testing and Production regardless of whether the track is active or not. This is a very important step. Your build will not be rejected.
I have a normal installable app on my git main branch. Now I want to create an Instant version of that game on a branch. I have done everything as described here. And at version-codes it also says:
It's OK to develop your instant app and your installable app in two separate Android Studio projects.
This is, I guess, the same as having a separate branch.
This is what I have changed:
AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.my.app.package"
xmlns:dist="http://schemas.android.com/apk/distribution"
android:targetSandboxVersion="2">
<dist:module dist:instant="true" />
<application ...>
<meta-data android:name="com.google.android.gms.instant.flavor" android:value="1337"/>
...
</application>
</manifest>
The targetSandboxVersion, dist:module and the meta-data.
In build.gradle I have added implementation "com.google.android.gms:play-services-instantapps:17.0.1" and set versionCode to 1.
But when I upload the app bundle it says that versionCode 1 is already used. But according to the quote above I think it should be possible to upload a bundle that only has the instant version. Am i doing something wrong?
For Instant App use version code lower than the version code of the standard/not-instant app.
It allows install of the standard version from the Instant version.
If you already have uploaded standard version, increase it's version code to eg. 100 and re-upload the standard version. Than use version code lower than 100 for the instant app.
Make sure app-bundle or apk with specific version code was not already uploaded, this includes also apk-s and bundles unsuccessfully uploaded and includes all versions of the app, both standard and instant.
Really stupid question I know. I am trying to upload my first application to Google Play and I am having issues uploading the APK. I get an error message saying:
Upload failed
You uploaded a debuggable APK.
For security reasons you need to disable debugging before it can be published in Google Play.
Learn more about debuggable APKs.
You need to use a different package name because "com.example" is restricted.
Does anybody know the package I need to use? And also will this be the case in all files in my Android Studio Project?
Sorry for my ignorance but it is my first time uploading and I am fairly new to this. I would really appreciate advice. Thanking you.
Debuggable APK - If you're using the default Android Studio/Gradle setup, you have both a "debug" and "release" variant of your app build. You need to upload the "release" variant. If you haven't set up and backed up your release signing keychain yet, do so first.
Package name - this refers to the <manifest> element in AndroidManifest.xml. It has a similar format to Java package naming, and a few things are a little more convenient if it matches the package your source code is in, but it doesn't need to. Just change
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example"
android:versionCode="1"
android:versionName="1.0">
(where it says com.example) to something unique, and if you have any relative references elsewhere in the manifest (e.g. <activity android:name=".MainActivity"> etc) you'll need to make them fully qualified or move the Java class. Every app must have a different package name.
I uploaded my first app to Google Play some weeks back, and everything works fine. However I have an update and need to push it to Google Play. I've done research and found that I needed to add the following to my manifest file:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.shouttag.mothership"
android:versionCode="2"
android:versionName="1.1" >
However, when I try to upload the signed APK file, I keep getting the dreaded "You need to use a different version code for your APK because you already have one with version code 1." error. Is this because in the first version, I didn't have the versionCode or versionName attributes?
Any guidance on how I can resolve this sitch?
If you're using Android Studio, make sure to also change the version in the build.gradle.
I have published apk to the Android Market, activated and setup for free for all countries.
Android Market says, my application is not compatible with any of the devices. I can see an application when I access Android Market from the PC browser but I can not download it from any of the Android phone (the same device used to test application before release).
How is that possible if I have just few requirements? I have tested the application on a few quite old devices before upload and it worked.
Information from the Publishing options:
This application is only available to devices with these features, as defined in your application manifest.
Screen layouts: SMALL NORMAL LARGE XLARGE
Required device features
android.hardware.screen.portrait
android.hardware.touchscreen
*This application is available to over 0 devices.*
Information fron the APK tab:
VersionCode: 2
VersionName: 1.0.1
Size: 4.3M
Localized to: default
Permissions: android.permission.READ_PHONE_STATE, android.permission.INTERNET, android.permission.WRITE_EXTERNAL_STORAGE, android.permission.ACCESS_NETWORK_STATE
Features: android.hardware.screen.portrait, android.hardware.touchscreen
API level: 7-15+
Supported screens: small-xlarge
OpenGL textures: all
If it is not strange enough, I have another application at the same account with very similar requirements and it gives me: This application is available to over 746 devices.
What is going on?
UPDATE:
Because many answers suggests something like: "Just activate your APK..." I emphasize it again:
APK is ACTIVATED (as stated at the beginning of the question and presented on the screenshot above).
Probably your uploaded APK file is not active. You can check this in the APK tab and switch to "Advanced mode". Here you should have 2 categories, "Active" and "Inactive".
Your file is probably in the Inactive category and you can change it by clicking the Activate link that should be behind it.
Hope my translations are correct as my Market account is in Dutch :)
I had a similar problem, I explained before but a moderator deleted it.
My app after an update had was available for 0 devices.
Anyway I found the solution for my case, so you can check if it works for you as well.
my mistake was that I included .jar files in order to add some external libraries and not the respective external class folders. When I removed the .jar files and I just added the class folder then devices became over 700 again.
for example I had the facebook API (an old one, not the current) and I had created a jar file out of it in order to include it like this in my app.
So when I removed the jar files and added the Facebook API projecy (Project Properties -> Java Build Path -> Projects -> Add..., the app was OK for the android market.
Hope I helped you!
For the records, I've found that one significant change that solved my case. Full explanation is at this post on Android Market Product Group.
Quick answer is remove the following uses-feature nodes from your manifest if present:
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<uses-feature
android:name="android.hardware.faketouch" />
Just activate the app on the APK files tab and you'll be ok.
i had similar issue, and resolved it just following the advice from http://androidforums.com/threads/0-devices-support-my-app-no-compatible-devices-on-play-store.947943/ , which was to change in build.gradle line compile 'org.apache.directory.studio:org.apache.commons.codec:1.8' to compile 'commons-codec:commons-codec:1.8' (so more or less general rule can be drawn, that you need to delete org.apache.(...) up to the package name and then just double it before semicolon).
I would be glad though, if someone would point me out why it was like that. Looking for the second term in Maven Central through Android Studio returned no results actually, so I doubted at first if it is going to work at all.