Small programming task for a freelancer

It’s a paid task. I have a native extension (based on this library) that works fine on Windows. Not so on Android.

  • resulting .apk doesn’t want to get installed
  • if installed through defold, the native extension’s methods are nil

Contact me at jpierre.delfosse@gmail.com with your estimates.

Thanks.

2 Likes

What do you mean by “if installed through defold”?

Maybe if you share the extension on GitHub so that we can take a look? It is likely something quite simple to fix.

I meant through dev app. Sorry, new to the defold lingo here.

That’d be great. I made an empty project with just the native extension set up and a simple “test” button: https://github.com/CodeSpartan/DefoldProtobufProblem

1 Like

Just tried bundling your project to Android and installed the resulting app and it worked. :slight_smile:
From ADB:


... 
D/defold  ( 8604): DEBUG:SCRIPT: Testing protobuf's methods
D/defold  ( 8604): DEBUG:SCRIPT: Hex:	0A 04 69 6C 73 65 10 12
D/defold  ( 8604): DEBUG:SCRIPT: Deserialized:	{
D/defold  ( 8604):   age = 18,
D/defold  ( 8604):   name = "ilse"
D/defold  ( 8604): } --[[table: 0xa3fe2720]]
...

Are you using the “dev app” that is available on d.defold.com? (Or any other prebuilt Defold Android app?) It’s important to remember that native extension code is not “hot reloadable” or automatically deployed when you do “Build & Launch” with a running Android app as a target. You can however bundle your app once with the native extension and install on your Android device then use it as a target if you want to hot reload/build&launch with Lua and collection changes. Makes sense? :slight_smile:

5 Likes

Wow, that’s great news, thanks! And thanks for the explanations! The reason I couldn’t install the .apk was because I already had another defold project on my phone and the two were conflicting for some reason.

1 Like
adb install -r myappname.app

Key ‘R’ should help to reinstall the app with the same package name or version code

2 Likes

You must make sure to give your Android application a unique package name in game.project. The default is example.unnamed.