ThinkGeo.com    |     Documentation    |     Premium Support

Help with getting started from scratch

Hi,



I’ve been trying to create a small basic mapping app from scratch, to get to know the drill. It doesn’t work :-(



I’ve used the HowDoISamples as my reference.



My app has a single layout (Main.axml, a true copy of the DisplayASimpleMap.axml), and a single (main) activity (Activity1.cs), which for all intents and purposes is a copy of the DisplayASimpleMap.cs.



I’ve also added the SampleActivity.cs just for good measure.



My reference list is identical to the one in HowDoISamples, and it builds ok.



However, the app errs when the ThinkGeo.MapSuite.AndroidEdition.MapView is present in my RelativeLayout. And works when it’s removed.



What’s killing me here ?? Please advise.



Here’s a screendump of the error I get. I’m also attaching my project (without dlls).







Cheers

Lars

Android-v4-ApplicationTplt.zip (1.03 MB)

Hi again,



I might add, that the HowDoISamples runs flawlessly on the same emulator (except for the data copy, which fails for lack of permissions to create folders on the "sdcard").



Cheers

Lars

Hi Lars, 
  
 Glad to hear that it runs well now,any questions or problems please let us know. 
  
 Thanks, 
 Johnny

IT DOES NOT RUN WELL !!!



Please read the entire thread !







However, the app errs when the ThinkGeo.MapSuite.AndroidEdition.MapView
is present in my RelativeLayout. And works when it’s removed.



What’s killing me here ?? Please advise.



NOTE! This is an ADDITIONAL comment. Please read the ENTIRE thread.



I’ve now tried to build a new app from scratch, and it works fine until I introduce a “ThinkGeo.MapSuite.AndroidEdition.MapView”
<thinkgeo.mapsuite.androidedition.mapview> object in my layout. The app just closes without warning. No custom code has been added at all.



I added the Thinkgeo assembly references (PortableCore and AndroidEdition) without a problem, but adding the mapview object makes the app fail.



I presume that it’s caused by a non-obvious and non-handled dependency/binding that still eludes me when looking at the HowDoISamples project (where it does work). Something similar to the “theme” subtree in web solutions that have to be added manually.



I would love a simple bare-bones app with just a simple mapview that works. Is this available anywhere ?



Ps! I’m using Visual Studio 2012 if it makes a difference.



Cheers

Lars</thinkgeo.mapsuite.androidedition.mapview>

Hi Lars,



We have checked your code and found it missed the following code which is the most important to start to use Android Edition now (This API is not the final one, it might change later to make it easier to use). Please see my fixed version in the attachment.



Pcl.Current = new AndroidEditionPclShareEnviroment();



This line indicates the default Android implementations that PCL doesn’t support. We use this strategy to make the API uniform between iOS and Android.







Thanks and feel free to let us know if you have more queries.
Howard

Activity1.zip (902 Bytes)

Thank you Howard !



This was exactly what I was missing :-) 



My first attempt at a mapping app is now up and running in the emulator, but alas not on the Samsung tablet which I recently upgraded to Android 4.0.4 (I’m targeting API15, i.e. 4.0.3). 



Any idea why the latter doesn’t work ?



Also, are there any more caveats I should be aware of with the current beta version ?



E.g., can a MapView be embedded in a LInearLayout, or does it always require a RelativeLayout ?



Cheers

Lars

Please read full thread.



Hi again,



I just tried my app on another tablet, which is delivered with an original Android 4.4.2.



My app also fails to run on this tablet, so it’s a common problem.



What else am I missing to do in my application ?



Cheers

Lars

Please read full thread.



Hi again,



Ok, I have an idea as to why my app doesn’t run on my tablets. They’re missing the shared runtimes!



In the emulator, I can see that these two packages have been deployed previously, most likely with the image:







I have no way of deploying these Mono packages directly to the tablets, so being only in the emulator probably explains my problems.



Is there an authorized method of deploying the Mono and AndroidEdition packages to my tablet ?



Cheers

Lars

Lars,



You are right, the Mono.Android needs to install shared runtime to run the deployed apps. On our end, we don’t need special settings and we can successfully deploy to the devices. Our testing devices are Samsung GALAXY Note10.1 and GT- N5110  without root.



Here are some tips maybe help.





        
  1. Check settings/personal/security/unknown sources option.

  2.     
  3. Turn on USB debugging.

  4.     
  5. On Visual Studio, check “Use Shared Runtime”, “Use Fast Deployment” option. As we tested with the two Pads, it works fine when we check or uncheck those two options. But one of our cell phone needs to uncheck to make it work which is very weird.



If this doesn’t help, please try to create one simple sample that is not using our control; just make sure it is the control’s issue or Xamarin’s issue.



On the other hand, when we collect enough information, we will contact with Xamarin support team to see if they have any clue.



Thanks,
Howard

Hi Howard,



Thanks, but I’m unfortunately still stuck with the missing Mono/Xamarin on the tablet.



I’m able to turn on USB debugging on the tablet (Samsung GT-P7320 upgraded to Android 4.0.4), and connect it to my development PC.



But if I select “Use Shared Runtime” in my project I cannot create an APK package for deployment.



And the deployment options I have at my disposal are just the emulators.



I’m using Visual Studio Professional 2012, and working with a Xamarin Business license.



Please advise.







I was under the impression that the Mono framework will be bundled into the APK if the project isn’t using “Shared runtime”.



Is this assumption wrong ?



Cheers

Lars

Hi Lars,



Here are some tips you could try.
1. Use “Debug” instead of “Release” to deploy this app. We got an official reply from Xamarin.




“Mono Shared Runtime” and “Mono Android-15 Support” gets installed automatically when you’re deploying your apps in “Debug” configuration. You can find them in Settings -> Apps on your device or emulator.
When you’re running/deploying an app with “Release” configuration, “Mono Shared Runtime” and “Mono Android-15 Support” are bundled with the app. You do not need them installed on the device.




2. Make sure the “Unknown sources” is allowed in the settings on the tablet.
3. Create a simple app which doesn’t have our map control include, see how it works.
4. Provide us the Xamarin Studio version, just make sure we are standing in the same line.



Thanks,

Howard

Hi Howard,



It was a technical issue on my part, coupled with a lack of insight into the working process, that gave my all the grievances.



I finally got my tablet online via USB, after downloading and installing yet another set of Samsung usb drivers (!)



And after seeing it turn up in the Android Device Monitor (which I evidently had to use Xamarin Studio to open), my tablet was a valid target for the project in VS. And selecting to debug my app with the tablet as target automatically deployed the Mono framework to the tablet.



I still need to find out how to deploy the release version eventually, with the Mono framework. Any insights on this ?



Cheers

Lars

Hi Howard,



Ah, our responses crossed each other :-)



The response from Xamarin answers my question wrt deploying the app in release mode. I’ll try that right away.



Cheers

Lars




Hi Howard,



Deploying with a single APK - after uninstalling both the debuggable app + the shared Mono framework - worked nicely.



Which is somewhat strange, since this was what I initially tried two weeks ago, and which didn’t work then.



However, the AndroidEdition has been updated since then, so that might be why it now works :-)



Thanks for your time

Lars

Hi Larse,  
  
 You are so kind to share your process of making it work. It helps us in the future, really thanks.  
  
 We will keep improving the AndroidEdition; we are now on the Memory usage part. Please keep an eye on the new updates later. 
  
 Thanks, 
 Howard