Skip to content
rcmaniac25 edited this page Jul 3, 2014 · 3 revisions

Remember: Work in progress

Using .BlackBerry takes a few steps right now.

But that's nto a problem because they aren't hard to do. Of course there is more then one way to do this.

Notes:

  • All variables that the user needs to set are enclosed in {} in both PreFab files and these wiki pages.
  • A physical BlackBerry 10 device is needed for everything (MonoBerry hasn't been precompiled for x86, so it won't work in the Simulator)
  • While everything "should" be loaded within 'app/native/monoberry/lib', there is a high chance that mono will look for a version specific lib, in which case it will look in the bin directory before failing. So if the app doesn't start, possibly move the dependency there.
  • If you SSH (or use the NDK provided terminal) into the device, you can access the log folder of your app and it will list everything that mono has done, including what errors it had.

Requirements:

  • BlackBerry NDK
  • Mono (All development and tests have been done with Mono 3.2.3 for Windows, though we only care about the BCL, not the runtime.)
  • MonoBerry (All development has been done with 0.2.0)
  1. Duck Tape Workflow =====================

This is how everything was put into working order in the first place.

Additional Requirements:

Steps:

  1. Create a MonoBerry project, steps 1 and 2, though you don't need to setup the Simulator. Change the Target Framework to .Net 4.5.
  2. Get .BlackBerry. Right now, that means building the libs. Later it would mean using Install-Package
  3. Modify monoberry-descriptor.xml to point to the proper libraries. (see below)
  4. Follow step 5

monoberry-descriptor changes

It is expected that you have Mono installed and have downloaded MonoBerry.

Section #2: Check the executable/libraries that you have created, specifically it's dependencies. List each runtime dependency (as opposed to downloaded packages):

  • For mscorlib, link to {MonoBerry}/target/lib/mscorlib.dll.
  • For all other libs, link to the Mono lib (for .Net 4.5) for the source.
  • Change all link references from 4.0 to 4.5 (since the build should be for .Net 4.5)

Section #3: Change the runtime links:

  • mono should point to {MonoBerry}/target/target/armle-v7/bin/mono
  • libgdiplus.so.1 should point to {MonoBerry}/target/target/armle-v7/lib/libgdiplus.so.1

Section #4: Change resources and binaries. While it currently points to your application's Debug directory, if you are missing additional dependencies, you may need to add additional asset copies.

  1. Pre-Fab Workflow (Recommended) =================================

Additional Requirements:

Steps:

  1. Create a .Net project (C#/F#/etc.)

  2. Copy the build scripts and monoberry-descriptor.xml to the project folder.

  3. Modify the script and descriptor so it will work with your device and has your app details.

  4. Change the debug action to start powershell as an external program, with the command line argument being '-file "{project directory}\PackagerScripts\Monoberry_Launcher.ps1"'

  5. Change the post-build event to 'powershell.exe -file "$(ProjectDir)\PackagerScripts\Monoberry_Builder.ps1"'

  6. Write code

  7. Make note of the dependences you use. Make sure to add an asset path for each one of these dependences so it will be copied to the bar file.

  8. Future Workflow ==================

Ok, this one isn't possible right now. That's why it's the "Future" workflow.

Additional Requirements:

  • .BlackBerry addon (debugging and such)

Steps:

  1. Create a .Net project (C#/F#/etc.)
  2. Add NuGet package for .BlackBerry
  3. Create app
  4. Debug/package/run like any other .Net application

Clone this wiki locally