[SOLVED] My own build has failed because of : jbullet & stack-alloc

Hi there , i was testing out my fork build from jmonkeyengine main repo , so i have created a new release in github & named it 3.4.0-alpha6 , its now linked to jitpack then i implemented it in my code instead of jme3-core i get this error :

image

then excluded jbullet group , & get this :

image

NB : my java code is normal , no red inlines.

Are you trying to build JME in an IDE or are you running gradlew from the command line?

I have already built jme on intellij , then commited & pushed to my repo , but now i have implemented my own build instead of jme on my demoApp on android studio :

the gradle file :

plugins {
    id 'com.android.library'
}

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.2"
    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        consumerProguardFiles "consumer-rules.pro"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

}

dependencies {

    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.2.1'
    testImplementation 'junit:junit:4.13.1'
    implementation 'com.github.Scrappers-glitch:jmonkeyengine:3.4.0-alpha6'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    implementation "org.jmonkeyengine:jme3-effects:3.3.2-stable"
    implementation "org.jmonkeyengine:jme3-lwjgl:3.3.2-stable"
    implementation 'com.github.stephengold:Minie:4.0.0'
}

EDIT : i have created a new release on git on my jme fork that’s implemented here on this gradle File

Oh, I misread.

The missing jars are not in public repos and so must be added to your project directly, I think… but you should run: “gradle dependencies” to see what’s trying to suck them in because I thought both were Java bullet related and you are using minie.

1 Like

i have noticed that in jmonkeyengine , dependencies are separated into multiple groups , may be this was the problem ,

i have excluded it by the way.

What’s the Stack-allocation ??

Just in case, you can find those libraries (bullet.jar and stack-alloc.jar) here.

1 Like

Ok, then there is no problem.

Else there is still a problem and you should run “gradle dependencies” as I asked to see what is depending on those.

Edit: also, I didn’t see anything excluded in the build file you posted so I guess we aren’t looking at the real one. The real one would be more useful for helping you debug the real one.

is there a way to exclude this ?

@pspeed yep , they aren’t in the file pasted because i have them removed then i forgot to return them back sorry about that , but this was result when excluding jbullet :

So, i will need to exclude also stack-alloc

BUT WHAT IS DEPENDING ON JBULLET?!?!?!?!?!?!?!

RUN:
gradle dependencies

Edit: if your next post is not the output of gradle dependencies then I’m going to bow out of this thread and let others help. 3 times is my “repeat myself” limit and I have to watch my blood pressure.

1 Like

Allright :joy: , Run dependencies is fine :

image

Good luck with your game. I’m out.

I have excluded jbullet & stack-alloc , then gets this :

  • Duplicate class checkers.quals.DefaultLocation found in modules jetified-jme3-core-3.3.2-stable (org.jmonkeyengine:jme3-core:3.3.2-stable) and jetified-jme3-core-3.4.0-alpha6 (com.github.Scrappers-glitch.jmonkeyengine:jme3-core:3.4.0-alpha6)

Since run “gradle dependencies” wasn’t clear somehow.

Here is an example of when I run it:

C:\Development\github\zay-es>gradle dependencies

> Task :dependencies

------------------------------------------------------------
Root project
------------------------------------------------------------

annotationProcessor - Annotation processors and their dependencies for source set 'main'.
No dependencies

apiElements - API elements for main. (n)
No dependencies

archives - Configuration for archive artifacts.
No dependencies

compile - Dependencies for source set 'main' (deprecated, use 'implementation' instead).
+--- com.google.guava:guava:19.0
\--- org.slf4j:slf4j-api:1.7.13

compileClasspath - Compile classpath for source set 'main'.
+--- com.google.guava:guava:19.0
\--- org.slf4j:slf4j-api:1.7.13

compileOnly - Compile only dependencies for source set 'main'.
No dependencies

default - Configuration for default artifacts.
+--- com.google.guava:guava:19.0
\--- org.slf4j:slf4j-api:1.7.13

implementation - Implementation only dependencies for source set 'main'. (n)
No dependencies

runtime - Runtime dependencies for source set 'main' (deprecated, use 'runtimeOnly' instead).
+--- com.google.guava:guava:19.0
\--- org.slf4j:slf4j-api:1.7.13

runtimeClasspath - Runtime classpath of source set 'main'.
+--- com.google.guava:guava:19.0
\--- org.slf4j:slf4j-api:1.7.13
1 Like

Android gradle has some different configurations ,

┌─[twisted@parrot]─[~/AndroidStudioProjects/JmEGamePad]
└──╼ $gradle dependencies

Starting a Gradle Daemon (subsequent builds will be faster)

> Task :dependencies

------------------------------------------------------------
Root project
------------------------------------------------------------

No configurations

A web-based, searchable dependency report is available by adding the --scan option.

BUILD SUCCESSFUL in 41s
1 actionable task: 1 executed

Anyway thank you !

Something you’ve included is depending on jbullet. Without a working “gradle dependencies” command you will have to go through each dependency by hand, look up its pom.xml, check each of those dependencies, look up their pom.xml, etc…

Or you could temporarily use a functioning gradle maybe.

i have fixed the jbullet problem , now it’s here !

& i even removed all “org.jmonkeyengine” from my dependencies :

Well, you think you did. Clearly you did not really.

Yep , i know now that i didn’t really , because jme other dependencies keeps adding jme3-core.jar automatically when gradle run dependencies , there’s a pom file or something inside each jme dependencies that implement jme3-core by default , so if i am using jme3-effects w/o declaring jme3-core as a dependency , it gets added by the fact that it’s already used inside jme3-effects ,something like chained inclusions …i have to move over each of those inclusions & change them to my repo not org.jmonkenyengine.

After some trials , i discovered that Minie has an inside inclusion of jme3-core that causes these disruptions.(this really makes sense , since Minie uses jme3-core packages)

But I wonder why you even renamed your own jme-core. It doesn’t even make sense to me.

I build my own custom JME all the time. I just gradlew install it and then refer to my snapshot version in builds.