12 Replies Latest reply on May 11, 2016 11:04 AM by Peter Arcuri

    MC67 Android issue with sample EMDK barcode scanner demo

    Mike Bedford

      Hello all,



      I have a Motorola/Zebra handheld computer running Android, model MC67. I am using the EMDK and am attempting to use the barcode demo application already built in to the EMDK. The link I am referencing is here: http://emdk.github.io/xamarin-docs/1.0/#guide-sample-api-barcode



      All I do is run the sample application (no changes at all) and when I try to debug, while it does build successfully, I get an error when it try's to deploy to device of:



      "Android application is debugging. The application could not be started. Ensure that the application has been installed to the target device and has a launchable activity (MainLauncher = true).

      Additionally, check Build->Configuration Manager to ensure this project is set to Deploy for this configuration."



      I obviously tried many things such as:

      1. The items listed above, checked MainLauncher was true and the only one. Checked that the Deploy check box was checked.

      2. That my debug and release configuration settings are all correct.

      3. Verified I can access the device (USB driver good, etc...)

      4. Tried even doing a factory reset on the device to clear out all existing apps, emdk, xamarin stuff, etc...



      Nothing I did fixed or even changed the issue.



      The only thing that "worked" was to remove one line out of the Android manifest which was autogenerated by the sample. That line is:

      <uses-library android:name="com.symbol.emdk" />



      The whole manifest is:

      <?xml version="1.0" encoding="utf-8"?>

      <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="Symbol.XamarinEMDK.BarcodeSample1" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">

        <uses-sdk android:minSdkVersion="16" />

        <uses-permission android:name="com.symbol.emdk.permission.EMDK" />

        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

        <application android:label="BarcodeSample1" android:icon="@drawable/Icon" android:theme="@android:style/Theme.Holo.Light.DarkActionBar">

          <uses-library android:name="com.symbol.emdk" />





      Once I remove that one line, the application will deploy to the device without the "Application could not be started" issue mentioned above. However, it presents a new issue that causes the application to crash. That error is:

      "Java.Lang.RuntimeException: Unable to instantiate activity ComponentInfo{Symbol.XamarinEMDK.BarcodeSample1/md513db78596028c4274649e4a9c542af77.MainActivity}: java.lang.ClassNotFoundException: md513db78596028c4274649e4a9c542af77.MainActivity"



      It is like a catch-22, Any ideas how to get this working?



      Some notes on my setup:


      Xamarin 4.03 installed (through VS extensions, did it just 2 days ago).

      EMDK is installed (version 1.03) by going to Components > Get More Components and choosing the EMDK for Xamarin.

      This also created a reference for me of Symbol.XamarinEMDK



      Thank you!




        • Re: MC67 Android issue with sample EMDK barcode scanner demo

          Hi Mike,


          Hope your device is running Android JB. Please note that the Xamarin version of EMDK is supported only for Android KitKat onwards: EMDK For Xamarin


          Devices Supported

          Currently only Zebra Android KitKat devices are supported. Be sure to run the device update on all devices before using the EMDK for Xamarin.




            • Re: MC67 Android issue with sample EMDK barcode scanner demo
              Mike Bedford



              Thank you for the reply and it is an interesting one for me. The reason it is interesting is because the MC67 shipped with Jelly Bean (4.1 API 16). That seemed a bit old to me in the Android world, so, after not having found an update available on the web, I called Zebra support and was told that in fact, Jelly Bean 4.1 is the current version for the MC67.


              Since KitKat is newer than Jelly Bean, Jelly Bean is the only version on the MC67 and I must be on KitKat, I assume then that you are saying the EMDK is not supported for the MC67 in so many words?


              That spawns a new question, Zebra put out the MC67 as a mobile computer with the built in barcode scanner. They then put out an EMDK to help developers get the tools and hardware running on the very device they are selling (MC67 in my case). However, I guess this is not the case for the MC67 and I have no support, or at least no EMDK, to use???


              I hope I am either missing something and there is an EMDK I can use for a barcode sample to get the barcode reader working, with Xamarin, on this MC67. Or, maybe tech support was mistaken and there is actually an update to get me on KitKat or newer?


              Finally, this is all assuming that my original issue is all related to this and had I been trying to deploy to KitKat or newer, it would work?





                • Re: MC67 Android issue with sample EMDK barcode scanner demo
                  Mike Bedford

                  Just to add more confusion on this topic, I just read the below snippet, which makes it sound as though I can use the EMDK on MC67, running Jelly Bean:


                  Devices Supported

                  Although EMDK for Android has been designed to work with all Symbol mobile computers running Android, the following devices have been used for validation:

                  • MC18 - KitKat
                  • MC32 - OS Update image v00002 or higher (JellyBean)
                  • MC40 - OS Update image v02.08.0520 or higher (JellyBean)
                  • MC40 - KitKat
                  • MC67 - OS Update image v01.28.14 or higher (JellyBean)
                  • MC92 - KitKat
                  • TC55 - OS Update image v01.74.00 or higher (JellyBean)
                  • TC55 - OS Update image v02.52.02 or higher (KitKat)
                  • TC70 - OS Update image v11.24.14 or higher (KitKat)
                  • TC70 - KitKat Rev B
                  • TC75 - KitKat


                  Found the above snippet on this page: http://techdocs.zebra.com/emdk-for-android/4-0/guide/about/


                  So, could somebody please clear up these misunderstandings? What do I need to do to get everything going?





                  • Re: MC67 Android issue with sample EMDK barcode scanner demo

                    Hi Mike,


                    Sorry for any confusion with my reply. "EMDK for Xamarin" is a newer SDK provided by Zebra and neither the same nor a replacement for "EMDK for Android". So at the time it is decided to skip older devices as you explained which are running JB to avoid some complexities. The product support started only from KK.


                    Before Zebra is proving the official EMDK for Xamarin, some outside partners/ customers used some guidelines to get "EMDK for Android" working on top of xamarin. You may try one of them from the web if you are really want to stick to Xamarin development. But they are not official help documents or so and support may not available on those.

                    Eg: Xamarin and the Zebra EMDK