The result of opening a bottle of wine on a Friday evening and browsing to eBay… Unlike the A1200, these are relatively cheap. To my surprise they are both in excellent condition for being 30 years old. Both with unbroken warranty seals! That leaves me with second thoughts about modding them with the latest Kickstart ROMs and CF HDs
Xamarin Android Unsupported class version issues
When doing Xamarin Android development, you may have come across the error message after enabling MultiDex:
Error Can't read [C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v7.1\mono.android.jar] (Can't process class [android/app/ActivityTracker.class] (Unsupported class version number [52.0] (maximum 51.0, Java 1.7)))
This is most likely because of an older ProGuard installation.
Download the latest ProGuard from here (v5.3.3 as of this writing).
Determine the current Android SDK location that Xamarin is using by checking Tools->Options->Xamarin->Android Settings.
In my case it is C:\Users\Magnus\AppData\Local\Android\android-sdk.
So here is how to to so update the Proguard installation;
In the tools sub folder, rename the current proguard to proguard.old.
Extract the contents of the latest ProGuard zip file to a folder named proguard.
That should do it. Just remember that any changes in the SDK installation (using the Android SDK Manager) will put back the older version, so repeat this after an SDK update.
I was struggling with a rendering exception in Android Studio v2
Failed to load the LayoutLib: com/android/layoutlib/bridge/Bridge : Unsupported major.minor version 52.0
Apparently this can be fixed by telling Android Studio to use JRE v8 (for the IDE, not compiling).
One could edit the plist to tell Android Studio to use a different JRE than the default v6, but that’s not recommended by Google.
So here’s a workaround; create a shortcut/alias that exports a value to use JRE v8.
Save this to a .command file, for example LaunchAndroidStudio.command:
open /Applications/Android\ Studio.app/
Change the icon for the alias.
Open the contents of /Applications/Android Studio.app
Navigate to /Contents/Resources and double click the AndroidStudio.icns, it will open in Preview
Copy the icon (Command+C)
Open the LaunchAndroidStudio.command by the “Get Info” command.
Click the default icon in the top left corner and past the icon (Command+V)
In my previous post, I walked you through on how to Install Python Azure SDK on Intel Galileo.
Let’s now put that Python SDK into some work and post something to an Azure Service Bus Queue.
It’s really rather straight forward:
from azure.servicebus import ServiceBusService, Message, Queue from azure.storage import QueueService import base64 service_namespace = '<YOURSERVICENAME>' key_name = 'MyIoTDevices' key_value = '<YOURKEY>' queue_name = 'mytestqueue' message = Message(base64.b64encode('Hello World')) sbs = ServiceBusService(service_namespace, shared_access_key_name=key_name, shared_access_key_value=key_value) sbs.send_queue_message(queue_name,message)
The only thing is to Base64 encode your string to be compatible with the other Azure SDK’s, in case you want compatibility with WIndows/Android/iOS etc.
But before we run this, you would need to set the on board clock on the Intel Galilelo, otherwise you will get this error:
azure.WindowsAzureError: Unknown error (Unauthorized) <Error><Code>401</Code><Detail>ExpiredToken: . TrackingId:12341234-1234-1234-1234-123412341234_G18,TimeStamp:10/27/2014 5:06:24 PM</Detail></Error>
So, they easiest way is to synchronise the clock against a time server:
rdate -s wwv.nist.gov
You will need to do this every time after you have shut down the board, since the clock is not battery backed up. So it might be a good idea to put this in a script and have it run at startup.
There you have it.