I am working on a new update to my app and added google maps support. I added a reference to the Mono.Android.GoogleMaps assembly. All works great, tested good on my Droid X device so I sent the .apk to beta testers. I then tried to install on my Kindle Fire (allowed unknown sources) and it failed to install. I also got a report from a beta tester that they got the same message on their Motorola Photon.
I've later learned Kindle Fire and NOOK don't have the Google Maps integration. I've already built around "location" permissions although not sure if that was required.
I just fired up a AVD for Kindle Fire per the Amazon info and tried deploying a debug build. I got this error message:
How do you suggest I proceed? If this issue IS google maps being referenced, how do you handle this so my app will run on devices without this shared library present? What do I test for in code as to when to allow features such as this?
Thanks.
I researched the issue and added this line to my AssemblyInfo.cs and now it installs to Kindle Fire.
[assembly: UsesLibrary(Name="com.google.android.maps", Required=false)]
Related
What steps do I need to take when I have troubles trying to use an app I created and try to run it on the latest Samsung Tab A 10.1? I tried to start the app, the message displayed is :
This application requires the latest version of ARCore
So I tapped the continue button. I was taken to Google Play. The title says "Google Play Services for AR". Then below that it says:
Your device isn't compatible with this version
Does anyone have a solution, please?
Firstly check whether the device you are using has the ARCore support:
It was indeed an easy experience in terms of building and running the app on the IOS device, iPhone 10. There were no complications in activating the ARkit in the devices since they were built in like the documentation mentioned. It was particularly gruesome in building the AR app on an Android device. As per the documentation the Android devices such as Samsung Galaxy A70S is compatible with ARCore.
Firstly the app simply crashed on installing into the device
As a part of the workaround, I looked for installing, "Google Play Services for AR" on my play store which simply didn't show up
I directly tried to install the app "Google Play Services for AR" through google but it failed with the message, the app is not compatible with my device.
I did a trial and error with installing the "Google Play Services for AR" apk directly from https://www.apkmirror.com/apk/google-inc/arcore/, specifically https://www.apkmirror.com/apk/google-inc/arcore/arcore-1-13-19100710-release/google-play-services-for-ar-1-13-191007106-android-apk-download/ to my Android device to enable ARCore which supported 64-bit processor
The app was however still crashing due to the 403 forbidden IP error on persisting the data
The issue got resolved on adding my public IP to azure rules
I'm trying to test the licencing on an app:
Uploaded the apk as an alpha to google play in the dev console
added tester emails
visited the testers' link once it was published and live
Problem: It says my device is incompatible with the app!
I debugged directly from Android Studio via usb on the same device, and when I upload the apk to my phone, I can install it directly.
Also, Google Play gives me no hints as to what the issue of obstruction is. How do I debug this issue?
In cases like this, keep an eye on the details: I had the noob error of using maxSdkVersion instead of the proper minSdkVersion - an oversight of 2 characters.
Yesterday I created an Android app using Delphi XE6, built it with Release configuration and targeted App Store, and ran deployment without installing to any device.
I then uploaded the resulted APK to Google Play Store with success, but when the app downloaded and installed on my device (ZTE N986D), it crashed.
THE SAME APK downloaded to the device via http server running on my laptop was fine and working without any error/crash.
I did triple checks everything (debug/release mode, provisioning, deployment files, etc.) with no luck. I also did try on 3 differend Android devices with exactly same result.
For now I believe that this is not a bug on Delphi XE6.
Is an APK getting changed when uploaded to Google Play Store?
Here is link to the app:
https://play.google.com/store/apps/details?id=org.cenadep.pnup.qrkasir
Any help and thought would be appreciated.
1) You need to generate a keystore for sign your APK.
Please follow this link to create a keystore: http://docwiki.embarcadero.com/RADStudio/XE6/en/Creating_a_Keystore_File
2) After, follow this: http://docwiki.embarcadero.com/RADStudio/XE6/en/Deploying_Your_Signed_Android_Application
I've been building an application, and it works fine on all the ICS phones I've tried to install it on. However, when I try to install the apk on my friend's new Jelly Bean phone, it just says "Application not installed". I've set his device to not verify installs and I've made sure his install applications not from google play option is checked.
In the actual code, I have the minimum api set to 14, and the target set to 17. Still I can't get it to install.
Does anyone have any idea what could be causing this?
The apk needs to be signed. You can do this from Eclipse: right click on your project -> Android -> Export Signed Application package. More info here: http://developer.android.com/tools/publishing/app-signing.html.
For others still wondering why this is happening.
Please note that if you are using android studio 2.3 or above and have
used signature versions v2(full apk signature) then your app may cause
installations problems on previous versions.
Solution use traditional jar signature scheme v1 while Generating APK.
for more info hit this link
I'm developing an app that uses the Google Maps api to give you a list of a given business type at runtime based on your current location.
I developed this on Eclipse using my LG Ally running Android 2.2.2 as a test device.
The QA team is not local to me so I emailed them the same apk file I installed on my phone.
Here's where it gets strange.
One tester, was able to install the app and run it with no problems. That person is using a phone running Android 2.2.2 - just like I am, although I am unsure if their phone is an LG Ally.
The other person is using a phone running 2.3.3 and they are unable to run the app. They've installed an app that emails me the logcat output and the only message that looks even vaguely related is:
06-21 14:22:57.147 W/PackageInstaller( 8784): Parse error when parsing manifest. Discontinuing installation
I've read on Stackoverflow that the manifest must contain info about the sdk. My Android Manifest contains:
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15"/>
I've also read on Stackoverflow that some people have problems installing apps emailed to them and suggested something like DropBox.
I've done both (included the above sdk line in my Manifest and delivered the app via DropBox) and they are still unable to run the app.
Which got me wondering about the Google Maps dependency. I'm not delivering the maps.jar file in my apk. Is there a way I can check that the maps.jar is available on the device where my app is running? Is there a way I can deliver the maps.jar file? What do I do if maps.jar is already present?
Is there a way I can check that the maps.jar is available on the device where my app is running?
If you have <uses-library> with the android:required="false" attribute, then your app can run even if the device lacks the Google Maps add-on for Android. You would use Class.forName() to see if MapActivity exists before trying to actually use a MapActivity, as in this sample project.
However, if your <uses-library> lacks an android:required attribute, or has it set to true, then the app simply cannot be installed on the device.
Is there a way I can deliver the maps.jar file?
Only in the form of buying the user another device -- one that has the Google Maps add-on -- and shipping it to them. Either the device has it (as do most devices that legitimately have the Play Store) or it doesn't (e.g., Kindle Fire). You cannot change that fact.