I know, i am using old gradle for java8 compatibility…i remember uaing gradle7 and above with android gradle plugin needs java 11.
EDIT :
So, no warnings about + sign on gradle7 ?
I know, i am using old gradle for java8 compatibility…i remember uaing gradle7 and above with android gradle plugin needs java 11.
EDIT :
So, no warnings about + sign on gradle7 ?
In that case, try Gradle v6.9.2, which is what the Engine is using.
EDIT:
I don’t recall seeing that warning before. Perhaps it’s specific to the SDK.
So it’s probably not related to Gradle version 6.5
and probably not related to the + sign
Maybe there is some kind of collision between +bare and +ano
Something is not working right (consistent) with fetching the +ano lib
By the way, we need to compile to AAB and not APK since the last one is not valid anymore on Google play store
Perhaps Gradle doesn’t like having two libraries named “MInie” in the same build.
Stephen, is it possible of you to temporary create 2 unique names for those libs:
implementation "com.github.stephengold:Minie:4.7.1+bare"
implementation "com.github.stephengold:Minie:4.7.1+ano"
without the + sign. something like:
implementation "com.github.stephengold:Minie_bare:4.7.1"
implementation "com.github.stephengold:Minie_ano:4.7.1"
So we will immediately see if this is the cause for the “collision”…
it’s possible. However, publishing a custom release of MInie requires a large amount of time and effort.
I think it would be much, much easier to download both libraries to the project’s “lib” directory, rename the files locally, and build using the renamed versions—for which you’d need:
repositories {
flatDir { dirs "${rootProject.projectDir}/lib" }
mavenCentral()
// ....
}
Alright, you can add it to the new milestone, i will open an issue and document it, take your time for the next version, may be omitting the + sign to dash :
implementation "com.github.stephengold:Minie-bare:5.x.x"
implementation "com.github.stephengold:Minie-ano:5.x.x"
The same as jme3-android and jme3-android-native module we are not on a hurry i think, @sgold thanks for supporting Minie build for android and arm devices.
EDIT :
yeah, seems gradle in some cases, reads them as different versions of a same module, so if the + sign is omitted from the version number, i guess this would fix the issue.
if the + sign is omitted from the version number, i guess this would fix the issue
No guessing—please document what you’ve tested and what the results were. Once I know what works and what doesn’t, I’ll make appropriate changes.
Sure! I will try that tomorrow and report if it fixes the problem
I hope everything is clear.
I mean a warning about not to use the + sign ? may be after updating to 4.9.0 ?
Yes, warning still there:
Avoid using + in version numbers; can lead to unpredictable and unrepeatable builds (com.github.stephengold:Minie:4.9.0+bare)
EDIT:
found it:
implementation files('libs/Minie-ano-4.9.0.jar')
implementation files('libs/Minie-bare-4.9.0.jar')
I’m trying to test that now. What would the implementation line looks like in that case?
Well…
I’m using jitpack and testing the following gradle build file:
From the tests I have made I can tell that:
Conclusion:
if “com.github.stephengold:Minie:4.9.0” will work as expected in all scenarios then I will just use it instead of the ano+bare combo
I can’t tell whether or not renaming the artifacts to not using the + sign will solve the “.so” files problem
Yeah, i tested Minie:4.9.0
and i also found the android native files too (without the empty file), @sgold so why doing separate parts, when the original minie still has the android native files, in my opinion, if you want to separate android natives on another module, then you should also remove them from minie module.
For Minie-4.9.0, this works fine for me too :
implementation 'com.github.stephengold:Minie:4.9.0'
EDIT :
I am sure it will work, since the empty file has disappeared now.
Yes. Signed AAB also worked as expected. no errors
The default Minie library supports 13 different platforms, which is great when you just want things to simply work. It is also 16 MB, which is rather large. A major reason for creating other builds (such as “big3”, “bare”, and “ano”) was to reduce bloat.
The “ano” build was created specifically to address @adi.barda 's troubles creating signed bundles (see the early posts in this topic). I was unsure whether the difficulties were caused by placeholder files or non-Android natives, so to be safe I tried avoiding both.
I’m not willing to remove Android from the default build. However, one possibility for the next release would be to create a “Minie-android” library that combines the contents of “bare” and “ano”.
Another route I’m considering would be to drop “ano” and “big3” and publish a broad selection of native libraries as individual Maven artifacts, similar to what LWJGL does. That would provide flexibility to “mix and match” natives. For instance, to support ONLY the 4 Android platforms, you’d drop something like this into the build script:
repositories {
mavenCentral()
}
dependencies {
implementation 'com.github.stephengold:Minie-bare:5.0.0'
runtimeOnly 'com.github.stephengold:Android_ARM7ReleaseSp_libbulletjme:14.6.1'
runtimeOnly 'com.github.stephengold:Android_ARM8ReleaseSp_libbulletjme:14.6.1'
runtimeOnly 'com.github.stephengold:Android_X86ReleaseSp_libbulletjme:14.6.1'
runtimeOnly 'com.github.stephengold:Android_X86_64ReleaseSp_libbulletjme:14.6.1'
}
The extra flexibility would come at a cost: build scripts become cumbersome and error-prone. Note long artifact IDs and the distinct version numbers for classes and natives. I think this route leads inevitably to the creation of a configuration tool comparable to LWJGL’s in its complexity. Not a project I’d likely enjoy.