Monday, March 31, 2014

1.0.1.81 - What's new


1.0.1.81 - What's new

See also changelog. Since we are now keeping track of all issues on GitHub, you can also visit the milestone that corresponds to this release.

To get the latest version, run "Check for updates" from the Device Center or download.

Fixed: Several import JAR issues

When we import a JAR, we generate a C# proxy. Java allows constructs that are not supported by C# and vice versa. Current issues are mostly related to choosing alternative mappings. We fixed import issues with Ksoap2-androidusb-serial-for-android and ormlite and gdx-backend-android.jar (libgdx).

New: Invoke apkspy from command line.

You can invoke apkspy (to read JAR or APK) from the command line. A time saver when debugging.

Fixed: System.BitConverter did not respect endianess.

See GitHub issue.

Fixed: Several System.String.Format issues

See GitHub issue.

Fixed: Unsubscribing from event fails

See GitHub issue and discussion on StackOverflow.

Friday, March 14, 2014

1.0.1.78-1.0.1.80 - What's new

1.0.1.78-1.0.1.80 - What's new

Check the changelog for the detailed list of changes.

To get the latest version, run "Check for updates" from the Device Center or download.

New: Added support for Android 4.4 API

Changed: Improved not-activated message

After installing dot42, the Device Center prompts you to activate dot42 by entering your serial. If, after installation, you do not start the Device Center but create or open a new dot42 project in Visual Studio, then the build fails with the message: "This certificate cannot be used with your current license.". This left many users puzzled with no hint how to solve this. We have changed this message to be more descriptive as follows: "Build failed because dot42 has not been activated. Start the dot42 Device Center to activate.".

Fixed: Layout of activation dialog messed up

In some occasions, the layout of the activation dialog is messed up, making it practically impossible to enter the serial.

Changed: Free Apps key no longer required for publishing

Prior to this version, with the Community License, it was not possible to sign your APK with a certificate that has a lifetime longer than two years unless you registered a so-called Free Apps key. This key had to be requested online by providing the name and MD5 fingerprint of your APK. 
As of this version, you no longer need a Free Apps key. You can use a certificate with any lifetime with your Community License. Consequently, you no longer require a Free Apps key to publish your APK to the Play Store. Note that this is not a legal change - just a technical one to reduce the clutter.

Fixed: Improved "Unknown serial message"

This dreaded message was shown if you tried to activate a serial that had already been activated. 

New: Added support for AndroidManifest.xml

See blog post for details.

Thursday, March 13, 2014

AndroidManifest.xml Support Added

At the very start we decided to replace the traditional AndroidManifest.xml with C# attrbutes. The reasoning was that this is what C# developers are more familiar with. E.g. the following:
[assembly: Application("dot42Application2")]
translates into:
<application android:label="dot42Application2">
Under the hood, the dot42 compiler generates the AndroidManifest.xml from the attributes before packaging it with the APK.

User feedback told us that something that was intended to be a convenience was more of an obstruction.

Manifest resource item

With 1.0.1.80 we have introduced the manifest resource item template. This allows you to include a traditional AndroidManifest.xml in your dot42 project.

You can either create a new one from the Solution Explorer like this:
  • from the context menu of your project select Add -> New Item... 
  • From the dialog, select node dot42->Android
  • From the available items select Manifest resource and set its name at the bottom of the dialog

Visual Studio will now add an Android Manifest to your solution. Some information is taken from your project settings, and inserted in the manifest.

Or you can simply copy an existing manifest to your project, include it in your project and set the build action to "ManifestResource" like this:



If you compile your project, Visual Studio will now detect that you have a manifest in your project and uses this file instead of generating one from attributes. This gives you more freedom over what your manifest contains. But with more freedom comes more responsibility: you have to make sure that all information in the manifest is correct. The only thing we check is if the SDK versions of your project match those in the manifest file. If not, a build error is generated. Clicking this error will take you to the attribute in the manifest that needs to be changed.

If you have both manifest attributes and a manifest file, then your attributes are ignored.

You can have only one manifest in your project. If more are found, a build error is generated for each manifest file. This makes it easier to locate all manifest files.

What about my 'old' manifest attributes?

These will continue to work. Your manifest attributes will only be ignored if you add a manifest resource to your project. If you want to transition from manifest attributes to an explicit manifest file, you can find the generated AndroidManifest.xml in \obj\Debug\TempCode after a successful build. Copy it to the root of your project and include it as described above.