ArrayIndexOutOfBoundsException at moeMainReleaseDesugar

Hi all!

I’ve finally been able to successfullly make jMonkeyEngine3run over iOS thanks to MOE. Just in case anyone is interested in it, a sample project can be found at github: GitHub - joliver82/jme3-ios-2024: Attempt to make jMonkeyEngine to run on iOS again at 2024 It’s a simple project showing some basics of jME3 functionality to be run on iOS

I’ve started adding ios support for the jME3 based game I’m developing adding what I did in the previously project linked but when trying to run or build it for iOS I’m getting the following error:

Task :ios-moe:moeMainReleaseDesugar FAILED

###########

ERROR LOG

###########

ProGuard, version 7.1.1
Unexpected error while computing stack sizes:
Class = [sun/plugin2/applet/Plugin2Manager$AppletExecutionRunnable]
Method = [run()V]
Exception = [java.lang.ArrayIndexOutOfBoundsException] (Index 39424 out of bounds for length 635)
Unexpected error while inlining subroutines:
Class = [sun/plugin2/applet/Plugin2Manager$AppletExecutionRunnable]
Method = [run()V]
Exception = [java.lang.ArrayIndexOutOfBoundsException] (Index 39424 out of bounds for length 635)
Error: Index 39424 out of bounds for length 635

I’ve search in google and around this forum about a similar error but I’ve not found anything useful. The only thing that made any change was setting “-dontshrink” in the proguard file but I’m getting a different error instead:

Task :ios-moe:moeMainReleaseDesugar FAILED

###########

ERROR LOG

###########

ProGuard, version 7.1.1
Error: Cannot invoke “proguard.classfile.Clazz.getAccessFlags()” because “this.referencedInvokedClass” is null

FAILURE: Build failed with an exception.

So I’m completely blocked with this… :frowning:

Any help is appreciated

@JOliver82
This seems like a proguard only error.
For the first failure, are you able to post the full backtrace of the exception (if it exists) and can you share, where the sun/plugin2/applet/Plugin2Manager$AppletExecutionRunnable class comes from? Is it hosted on maven central?

No idea where the Plugin2Manager class comes from… When running gradle with --stacktrace option I get the following:

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ‘:ios-moe:moeMainReleaseDesugar’.

Task failed, you can find the log file here: /Users/v1r7ua1/RailRacer/ios-moe/build/moe/main/desugar/release/Desugar.log

  • Try:

Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
Get more help at https://help.gradle.org.

  • Exception is:
    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ‘:ios-moe:moeMainReleaseDesugar’.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:130)
    at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:293)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:128)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:116)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314)
    at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:85)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
    Caused by: org.gradle.api.GradleException: Task failed, you can find the log file here: /Users/v1r7ua1/RailRacer/ios-moe/build/moe/main/desugar/release/Desugar.log
    at org.moe.gradle.tasks.AbstractBaseTask.javaexec(AbstractBaseTask.java:258)
    at org.moe.gradle.tasks.Desugar.run(Desugar.kt:110)
    at org.moe.gradle.tasks.AbstractBaseTask.runInternal(AbstractBaseTask.java:109)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
    at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:244)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:229)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:212)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:195)
    at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:162)
    at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)
    at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)
    at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)
    at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)
    at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:42)
    at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:75)
    at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
    at org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50)
    at org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28)
    at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67)
    at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37)
    at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61)
    at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26)
    at org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:69)
    at org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:46)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29)
    at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:189)
    at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:75)
    at org.gradle.internal.Either$Right.fold(Either.java:175)
    at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:62)
    at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73)
    at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:46)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:35)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:75)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:53)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:53)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:35)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
    at org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:49)
    at org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:27)
    at org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:71)
    at org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:39)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36)
    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:107)
    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:56)
    at org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:64)
    at org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:43)
    at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.executeWithNonEmptySources(AbstractSkipEmptyWorkStep.java:125)
    at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:56)
    at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:36)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
    at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)
    at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)
    at org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:75)
    at org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:41)
    at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.lambda$execute$0(AssignMutableWorkspaceStep.java:35)
    at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:289)
    at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:31)
    at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:22)
    at org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:40)
    at org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:23)
    at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.lambda$execute$2(ExecuteWorkBuildOperationFiringStep.java:67)
    at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:67)
    at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:39)
    at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:46)
    at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:34)
    at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:48)
    at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:35)
    at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:61)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:127)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:116)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314)
    at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:85)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)

Not sure this will help you address the issue.

Thanks

@JOliver82

Could you try running this gradle task to check it?

task findDependencyForClass {
    doLast {
        def classFile = 'sun/plugin2/applet/Plugin2Manager.class'

        configurations.runtimeClasspath.resolvedConfiguration.resolvedArtifacts.each { artifact ->
            def file = artifact.file
            if (file.name.endsWith(".jar")) {
                ZipFile zipFile = new ZipFile(file)
                def entry = zipFile.getEntry(classFile)
                if (entry != null) {
                    println "Found class in dependency: ${artifact.moduleVersion.id}"
                }
            }
        }
    }
}

I’m getting the following error with this task:

  • What went wrong:
    Could not compile build file ‘/Users/v1r7ua1/RailRacer/ios-moe/build.gradle’.

startup failed:
build file ‘/Users/v1r7ua1/RailRacer/ios-moe/build.gradle’: 85: unable to resolve class ZipFile
@ line 85, column 25.
ZipFile zipFile = new ZipFile(file)
^

build file ‘/Users/v1r7ua1/RailRacer/ios-moe/build.gradle’: 85: unable to resolve class ZipFile
@ line 85, column 35.
ZipFile zipFile = new ZipFile(file)
^

2 errors

But don’t mind, I found out which is the jar having that class. It’s plugin.jar form jdk7. I don’t know why I still had this one (I have some local jars that are not stored at maven as dependencies) so that one was left there for no reason.

I’m now getting a different error:

dex2oat F 94832 16313744 /Users/runner/work/moe-gha/moe-gha/moe-ci/aosp/art/compiler/oat_writer.cc:655] java.lang.NoClassDefFoundError: com.jme3.system.jogl.DisplayInfo_Jogl$1
dex2oat F 94832 16313744 /Users/runner/work/moe-gha/moe-gha/moe-ci/aosp/art/compiler/oat_writer.cc:655] (Throwable with empty stack trace)
NATIVE BACKTRACE:
0 dex2oat 0x0000000005068009 _ZN3art7Runtime5AbortEv + 101
1 dex2oat 0x000000000508a15a _ZN3art10LogMessageD2Ev + 540
2 dex2oat 0x0000000004f453d3 _ZN3art9OatWriter22InitImageMethodVisitor11VisitMethodEmRKNS_21ClassDataItemIteratorE + 1607
3 dex2oat 0x0000000004f40987 _ZN3art9OatWriter15VisitDexMethodsEPNS0_16DexMethodVisitorE + 257
4 dex2oat 0x0000000004f4052a _ZN3art9OatWriter19InitOatCodeDexFilesEm + 178
5 dex2oat 0x0000000004f3f4ba _ZN3art9OatWriterC2ERKNSt3__16vectorIPKNS_7DexFileENS1_9allocatorIS5_EEEEjmiPKNS_14CompilerDriverEPNS_11ImageWriterEPNS_12TimingLoggerEPNS_7SafeMapINS1_12basic_stringIcNS1_11char_traitsIcEENS6_IcEEEESN_NS1_4lessISN_EENS6_INS1_4pairIKSN_SN_EEEEEE + 618
6 dex2oat 0x0000000004dbfa5b _ZN3art7Dex2Oat13CreateOatFileEv + 417
7 dex2oat 0x0000000004db2907 _ZN3artL7dex2oatEiPPc + 318
8 dex2oat 0x0000000004db26ed main + 29
9 libdyld.dylib 0x00007fff7129bcc9 start + 1

dex2oat F 94832 16313744 /Users/runner/work/moe-gha/moe-gha/moe-ci/aosp/art/runtime/runtime.cc:468]Runtime aborting…
Aborting thread:
“main” prio=5 tid=1 Runnable (still starting up)
| group=“” sCount=0 dsCount=0 obj=0x0 self=0x7fe92d008200
| sysTid=16313744 nice=-1 cgrp=default sched=1/31 handle=0x116bfdc0
| state=? schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
| stack=0x7ffeea654000-0x7ffeea65c000 stackSize=8MB
| held mutexes= “abort lock” “mutator lock”(shared held)
(no managed stack frames)
Pending exception java.lang.NoClassDefFoundError: com.jme3.system.jogl.DisplayInfo_Jogl$1
(Throwable with empty stack trace)Dumping all threads without appropriate locks held: thread list lock
All threads:
DALVIK THREADS (1):
“main” prio=5 tid=1 Runnable (still starting up)
| group=“” sCount=0 dsCount=0 obj=0x0 self=0x7fe92d008200
| sysTid=16313744 nice=-1 cgrp=default sched=1/31 handle=0x116bfdc0
| state=? schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
| stack=0x7ffeea654000-0x7ffeea65c000 stackSize=8MB
| held mutexes= “abort lock” “mutator lock”(shared held)
(no managed stack frames)

dex2oat W 94832 16313744 /Users/runner/work/moe-gha/moe-gha/moe-ci/aosp/art/runtime/barrier.cc:96] Attempted to destroy barrier with non zero count -1

The class stated there com.jme3.system.jogl.DisplayInfo_Jogl is useless, so I’ll be removing it and trying again. I’ll get back to you once done.

Thanks for your help :wink:

Hi again,

I’ve reordered my whole dependencies and cleaned a little bit and I was finally able to build the app :partying_face:

Now I’m getting a runtime exception as follows:

*** Terminating app due to uncaught exception ‘java.lang.NoSuchMethodError’, reason: 'java.lang.NoSuchMethodError: No static method isFinite(F)Z in class Ljava/lang/Float; or its super classes (declaration of ‘java.lang.Float’ appears in /Users/------/ios-moe/build/moe/main/dex/release/classes/classes-1.jar)

I’ve extracted the classes-1.jar, extracted the inner dex files and uncompiled the java.lang.Float class and in fact I didn’t find the isFinite method.

Any idea why this could be happening? As far as I’ve read, the isFinite method first appearance was in java 1.8. Doesn’t MOE support 1.8?

Thanks

Hi @JOliver82 ,

yes, the method is indeed missing from the source code.

MOE does support java 1.8 + some java 9+ API’s, but it seems like when adding the java 1.8 methods, the Float class was just overlooked by accident.
I will fix it and publish a snapshot.

That sounds great! Thanks for the support @Berstanio

@JOliver82
A new 1.10.1-SNAPSHOT has been published, that should include the backported Float methods.

Thanks for the quick update :wink:

Where do I get this release from? I have the following in my build.gradle:

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath “org.multi-os-engine:moe-gradle:1.10.1-SNAPSHOT” // previously 1.10.0
}
}

but I’m getting the following:

  • What went wrong:
    A problem occurred configuring project ‘:ios-moe’.

Could not resolve all artifacts for configuration ‘:ios-moe:classpath’.
Could not find org.multi-os-engine:moe-gradle:1.10.1-SNAPSHOT.
Searched in the following locations:
- https://repo.maven.apache.org/maven2/org/multi-os-engine/moe-gradle/1.10.1-SNAPSHOT/maven-metadata.xml
- https://repo.maven.apache.org/maven2/org/multi-os-engine/moe-gradle/1.10.1-SNAPSHOT/moe-gradle-1.10.1-SNAPSHOT.pom
Required by:
project :ios-moe

Are the snapshots stored at other repo?

@JOliver82

buildscript {
    repositories {
        maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
    }
    dependencies {
        classpath group: 'org.multi-os-engine', name: 'moe-gradle', version: '1.10.1-SNAPSHOT'
    }
    configurations.all {
        resolutionStrategy.cacheChangingModulesFor 60, 'seconds'
    }
}

Failing to parse the maven xml :frowning: :

Failed to apply plugin ‘moe’.

Could not resolve all artifacts for configuration ‘:ios-moe:moeMavenSDK’.
Could not resolve org.multi-os-engine:moe-sdk:1.10.1-SNAPSHOT.
Required by:
project :ios-moe
Could not resolve org.multi-os-engine:moe-sdk:1.10.1-SNAPSHOT.
Unable to load Maven meta-data from https://oss.sonatype.org/content/repositories/snapshots/org/multi-os-engine/moe-sdk/1.10.1-SNAPSHOT/maven-metadata.xml.
org.xml.sax.SAXNotRecognizedException: Property ‘http://javax.xml.XMLConstants/property/accessExternalSchema’ is not recognized.

@JOliver82
Could you try the solution described here? Seems like gradle 8.4 changed something again.

But it’s not really clear what the issue root cause is:

Yes! The first link did the trick! I’m using gradle 8.10, so could be related to any inner change in latest gradle releases.

About the missing Float.isFinite method,it’s resolved, I’m not getting this exception anymore. Now I have to check all the functionality in my game.

Thanks for all :wink: