No artifacts generated from updateModule


#1

Hello.

I am attempting to work on a native module integration for Android. Using the ForgeInspector build target from within Android Studio I am able to get things look good. But, when attempting to use ‘updateModule’ to generate the .jar/.aar files, nothing is being generated, therefore it looks like nothing is actually being uploaded when updating my module version and attempting to use it from the JS side.

I am attempting to run the ‘updateModule’ task from command line (with and without admin privileges), and from within AndroidStudio. I get a success message that the artifacts were created and copied, but I do not see them in ‘<module_name>\module\android’ as I would expect.

Have been attempting to follow these instructions: https://trigger.io/docs/current/api/native_modules/the_basics.html

Thanks!


#2

Hmmmm… that’s a new one.

  1. What’s the name of your module?
  2. Can you please attach the log output from running the updateModule task within Android Studio?

Some things to try:

  1. Try bumping the platform version in module/manifest.json to the latest (v2.7.8 at time of writing) (remember to update the Android ForgeInspector from the toolkit)
  2. Try updating Android Studio (only if bumping platform version didn’t work - Google tend to break Android Studio compatibility with each major release!)

#3

Thank you for the quick reply. Here is the status…

Module name: bluetherm_2 (it is private)
platform: was 2.6.8, upgraded to 2.7.8
AndroidStudio: was 3.4.1, upgraded to 3.4.2

After update those I did see a ForgeModule.aar being generated in the folder ‘inspector\an-inspector\ForgeModule\build\outputs\aar’, but still nothing in ‘bluetherm_2\module\android’ as I would expect based on the ‘updateModule’ log output.

The end result is that it does not look like my new module is loading up with the app. I am hooking up listeners and making calls from the JS side, but am not seeing anything in the trigger console logs or via expected toast messages.

Attached the build log. The attachment is actually a zip file, not a txt. It was too big to attach without zipping. updateModuleLog.txt (13.4 KB)

Thank you,
Matt


#4

The plot thickens…

Going by the build log there’s not a single issue.

We’re not doing anything strange from our side, the actual task definition is as simple as it gets:

task updateModule (dependsOn: ":ForgeModule:assembleRelease") {
    doLast {
        // copy vanilla jar for backwards compatibility
        copy {
            from "build/intermediates/bundles/vanilla/debug/classes.jar"
            into "../../../module/android"
            rename { "module.jar" }
        }
        println "\n\tUpdated module/android/module.jar"

        // copy aar flavors for platforms >= 2.4.1
        copy {
            from "build/outputs/aar/ForgeModule-vanilla-release.aar"
            into "../../../module/android"
        }
        println "\tUpdated module/android/ForgeModule-vanilla-release.aar"

        copy {
            from "build/outputs/aar/ForgeModule-crosswalk-release.aar"
            into "../../../module/android"
        }
        println "\tUpdated module/android/ForgeModule-crosswalk-release.aar\n"
    }
}

The only thing I can think of is that there’s a problem with the specific version of Gradle and/or Windows on your machine?

Are the .aar files referenced within the rule present in your inspector’s build directory?

If so, it might just be easiest to copy the files over into the module/android directory manually!


#5

Nice. I will try reinstalling gradle today

As for the artifacts:
inspector\an-inspector\build - only has an intermediates folder
inspector\an-inspector\ForgeModule\build\outputs\aar - has ForgeModule.aar (which updates its timestamp when i run ‘buildModule’)
inspector\an-inspector\ForgeInspector\build\outputs - only has a logs folder


#6

Just a quick update…

Installed a local version of Gradle and tried using it instead of the AS bundled version, no change.

I created a brand new module from scratch and it generates the AAR files at ‘module\android’ just fine.

I am going to continue my testing/development with a new module and see where I can get. If I get back into the same situation where the AARs are not updating/generating properly I can reach back out.

Appreciate the help!
Matt


#7

So I was able to track down some more specifics. My new module worked great and generated the AAR files without issue until I brought in my third party AAR file that I am attempting to integrate with.

I can get the inspector to run and interact with the AAR file contents fine, but when running ‘updateModule’ at that point there is no new AAR files generated anymore.

I had asked a previous question about using third party libs a few weeks back (Android native module works in inspector, not in deployed app), and I interpreted your answer to mean that I could use an AAR file, just not JAR files.

Is the only way to work against a 3rd party lib to either have the source or have it be one of the official repos?


#8

This. Unfortunately.

At some point in the future we’re hoping that Gradle and/or the Android Gradle Plugin will get to the point where we can specify arbitrary repos programatically but at present they need to be hardcoded.

Currently supported repos:

        google()
        jcenter()
        maven {
            url "https://maven.google.com"
        }
        maven {
            url "http://dl.bintray.com/openid/net.openid"
        }
        maven {
            url "https://jitpack.io"
        }

If your lib is in a publicly available repo I’ll be happy to release a new platform version that includes it!