Closed jfbilodeau closed 1 year ago
Which version of korge-gradle-plugin
are you using? (That version is usually on the gradle.properties
)
Related issue: https://github.com/korlibs/korge-plugins/issues/28
Which version of
korge-gradle-plugin
are you using? (That version is usually on thegradle.properties
)Related issue: korlibs/korge-plugins#28
I've tried it with 2.0.6 and 2.0.0.999. Both have the same behavour.
Checking the stacktrace you provided:
Caused by: java.io.FileNotFoundException: /Users/jfbilodeau/IdeaProjects/test/build/platforms/android/local.properties (No such file or directory)
at kotlin.io.FilesKt__FileReadWriteKt.writeBytes(FileReadWrite.kt:108)
at kotlin.io.FilesKt__FileReadWriteKt.writeText(FileReadWrite.kt:134)
at kotlin.io.FilesKt__FileReadWriteKt.writeText$default(FileReadWrite.kt:134)
at com.soywiz.korge.gradle.targets.android.AndroidExtKt.ensureAndroidLocalPropertiesWithSdkDir(AndroidExt.kt:36)
https://github.com/korlibs/korge-next/commit/7a9f8c5dd8994400d63e5073ef97d16cdc9bd7f5
https://github.com/korlibs/korge-next/blame/master/korge-gradle-plugin/src/main/kotlin/com/soywiz/korge/gradle/targets/android/AndroidExt.kt#L36-L38 https://github.com/korlibs/korge-plugins/blob/48141b473729ff257d23d8adeca344564aca0fc5/korge-gradle-plugin/src/main/kotlin/com/soywiz/korge/gradle/targets/android/AndroidExt.kt#L36-L38
On next and master on the gradle-plugins
repo, there is a ensureParents
call. The line AndroidExt.kt:36
from your stacktrace corresponds to the old version that didn't have the ensureParents
, on the latest version the write happens on line 38
.
Can you provide your gradle.properties
file, along your build.gradle.kts
file to check the version, maybe there is something strange there and somehow using an old version? How are you using korge-next (2.0.0.999)? Are you installing it into maven local? Which task are you using for installing it?
Thanks for getting back to me. Here's my gradle.properties:
korgePluginVersion=2.0.6.0
org.gradle.jvmargs=-Xmx6g
kotlin.mpp.stability.nowarn=true
and here's the build.gradle.kts:
import com.soywiz.korge.gradle.KorgeGradlePlugin
import com.soywiz.korge.gradle.korge
buildscript {
val korgePluginVersion: String by project
repositories {
mavenLocal()
maven { url = uri("https://dl.bintray.com/korlibs/korlibs") }
maven { url = uri("https://plugins.gradle.org/m2/") }
mavenCentral()
google()
mavenLocal()
}
dependencies {
classpath("com.soywiz.korlibs.korge.plugins:korge-gradle-plugin:$korgePluginVersion")
}
}
apply<KorgeGradlePlugin>()
korge {
id = "com.chronogears.wishlair.Wishlair"
name = "Wishlair"
authorName = "J-F Bilodeau"
description = "A CGA Textmode Adventure Game"
gameCategory = com.soywiz.korge.gradle.GameCategory.ADVENTURE
exeBaseName = "wishlair"
icon = File("build-res/icon.png")
orientation = com.soywiz.korge.gradle.Orientation.LANDSCAPE
// To enable all targets at once
// targetAll()
// To enable targets based on properties/environment variables
//targetDefault()
// To selectively enable targets
targetJvm()
targetJs()
targetDesktop()
targetIos()
targetAndroidIndirect()
// targetAndroidDirect()
copy {
from(file("../editor/src/commonMain/resources/"))
include("**/*")
exclude("dev")
into("src/commonMain/resources")
}
project.dependencies.add("commonMainImplementation", project(":shared"))
}
That looks apparently fine, maybe there is something different in the rest of the project, or an overridden dependency from development (since dependencies are looked first at mavenLocal
)?
~/.m2/repository/com/soywiz/korlibs/korge/plugins/korge-gradle-plugin
Just in case you have an overriden version there.
https://github.com/korlibs/korge-hello-world
Here's the output from ~/.m2/repository/com/soywiz/korlibs/korge/plugins/korge-gradle-plugin:
$ ls -l ~/.m2/repository/com/soywiz/korlibs/korge/plugins/korge-gradle-plugin
total 8
drwxrwxr-x 2 jfbilodeau jfbilodeau 4096 jan 28 18:56 2.0.0.999
-rw-rw-r-- 1 jfbilodeau jfbilodeau 370 fév 8 18:14 maven-metadata-local.xml
Looks like I'm using version 2.0.0.999 of the plugin. Maybe it's an older version? When was the ensureParents()
added?
In 2.0.5.0 -> https://github.com/korlibs/korge-plugins/compare/v2.0.0.2...v2.0.5.0
Have you tried to run the hello world with android? Can you try it and indicate here if you have the same problem on that project? It is using 2.0.6.0 and it is working for me:
git clone https://github.com/korlibs/korge-hello-world
cd korge-hello-world
./gradlew runAndroidDebug
Additionally, I have added a new task to the gradle plugin here: https://github.com/korlibs/korge-next/commit/cbac027f1a970691f3b2fee8182b3aa1b7c27a2d
Can you download korge-next latest version, then ./gradlew publishToMavenLocal
. Then in your project using 2.0.0.999
you can try: ./gradlew showKorgeVersions
and put the output here?
NOTE: I won't be able to check this until early next week, so all the info you can gather in this time will help to figure out what's going on and try to solve the issue.
Here ya go! As always, thanks for your help:
$ ./gradlew showKorgeVersions
Some Kotlin/Native targets cannot be built on this linux_x64 machine and are disabled:
* In project ':shared':
* targets 'iosX64', 'macosX64' (can be built with a macos_x64 host)
* target 'mingwX64' (can be built with a mingw_x64 host)
To hide this message, add 'kotlin.native.ignoreDisabledTargets=true' to the Gradle properties.
> Task :editor:showKorgeVersions
Build-time:
- os.name: Linux
- os.version: 5.4.0-64-generic
- java.vendor: Ubuntu
- java.version: 11.0.9.1
- gradle.version: Gradle 6.8
- groovy.version: 2.5.12
- kotlin.version: 1.4.20
Korge Gradle plugin:
- GIT: v2.0.0-rc-300-ga75d5db3-dirty
- KRYPTO: 2.0.0.999
- KLOCK: 2.0.0.999
- KDS: 2.0.0.999
- KMEM: 2.0.0.999
- KORMA: 2.0.0.999
- KORIO: 2.0.0.999
- KORIM: 2.0.0.999
- KORAU: 2.0.0.999
- KORGW: 2.0.0.999
- KORGE: 2.0.0.999
- KOTLIN: 1.4.30
- JNA: 5.7.0
- COROUTINES: 1.4.2
- ANDROID_BUILD: 4.0.1
> Task :mapgen:showKorgeVersions
Build-time:
- os.name: Linux
- os.version: 5.4.0-64-generic
- java.vendor: Ubuntu
- java.version: 11.0.9.1
- gradle.version: Gradle 6.8
- groovy.version: 2.5.12
- kotlin.version: 1.4.20
Korge Gradle plugin:
- GIT: v2.0.0-rc-300-ga75d5db3-dirty
- KRYPTO: 2.0.0.999
- KLOCK: 2.0.0.999
- KDS: 2.0.0.999
- KMEM: 2.0.0.999
- KORMA: 2.0.0.999
- KORIO: 2.0.0.999
- KORIM: 2.0.0.999
- KORAU: 2.0.0.999
- KORGW: 2.0.0.999
- KORGE: 2.0.0.999
- KOTLIN: 1.4.30
- JNA: 5.7.0
- COROUTINES: 1.4.2
- ANDROID_BUILD: 4.0.1
> Task :wishlair:showKorgeVersions
Build-time:
- os.name: Linux
- os.version: 5.4.0-64-generic
- java.vendor: Ubuntu
- java.version: 11.0.9.1
- gradle.version: Gradle 6.8
- groovy.version: 2.5.12
- kotlin.version: 1.4.20
Korge Gradle plugin:
- GIT: v2.0.0-rc-300-ga75d5db3-dirty
- KRYPTO: 2.0.0.999
- KLOCK: 2.0.0.999
- KDS: 2.0.0.999
- KMEM: 2.0.0.999
- KORMA: 2.0.0.999
- KORIO: 2.0.0.999
- KORIM: 2.0.0.999
- KORAU: 2.0.0.999
- KORGW: 2.0.0.999
- KORGE: 2.0.0.999
- KOTLIN: 1.4.30
- JNA: 5.7.0
- COROUTINES: 1.4.2
- ANDROID_BUILD: 4.0.1
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.8/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 6s
3 actionable tasks: 3 executed
@jfbilodeau do the hello-world work for you? I want to know that to figure out if your multimodule project configuration is related to the problem
The Hello World works fine. My multiproject still fails with the same error:
Build file '/home/jfbilodeau/Projects/godlair/build.gradle.kts' line: 1
Error resolving plugin [id: 'org.jetbrains.kotlin.multiplatform', version: '1.4.30']
> Plugin request for plugin already on the classpath must not include a version
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.GradleException: Error resolving plugin [id: 'org.jetbrains.kotlin.multiplatform', version: '1.4.30']
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.resolveToFoundResult(DefaultPluginRequestApplicator.java:207)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.lambda$resolvePluginRequests$4(DefaultPluginRequestApplicator.java:146)
at org.gradle.util.CollectionUtils.collect(CollectionUtils.java:207)
at org.gradle.util.CollectionUtils.collect(CollectionUtils.java:201)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.resolvePluginRequests(DefaultPluginRequestApplicator.java:144)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugins(DefaultPluginRequestApplicator.java:84)
at org.gradle.kotlin.dsl.provider.PluginRequestsHandler.handle(PluginRequestsHandler.kt:48)
at org.gradle.kotlin.dsl.provider.StandardKotlinScriptEvaluator$InterpreterHost.applyPluginsTo(KotlinScriptEvaluator.kt:203)
at org.gradle.kotlin.dsl.execution.Interpreter$ProgramHost.applyPluginsTo(Interpreter.kt:369)
at Program.execute(Unknown Source)
at org.gradle.kotlin.dsl.execution.Interpreter$ProgramHost.eval(Interpreter.kt:501)
at org.gradle.kotlin.dsl.execution.Interpreter.eval(Interpreter.kt:178)
at org.gradle.kotlin.dsl.provider.StandardKotlinScriptEvaluator.evaluate(KotlinScriptEvaluator.kt:124)
at org.gradle.kotlin.dsl.provider.KotlinScriptPluginFactory$create$1.invoke(KotlinScriptPluginFactory.kt:51)
at org.gradle.kotlin.dsl.provider.KotlinScriptPluginFactory$create$1.invoke(KotlinScriptPluginFactory.kt:36)
at org.gradle.kotlin.dsl.provider.KotlinScriptPlugin.apply(KotlinScriptPlugin.kt:34)
at org.gradle.configuration.BuildOperationScriptPlugin$1.run(BuildOperationScriptPlugin.java:65)
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$3.execute(DefaultBuildOperationRunner.java:75)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71)
at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71)
at org.gradle.configuration.BuildOperationScriptPlugin.lambda$apply$0(BuildOperationScriptPlugin.java:62)
at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:43)
at org.gradle.configuration.BuildOperationScriptPlugin.apply(BuildOperationScriptPlugin.java:62)
at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$applyToMutableState$0(DefaultProjectStateRegistry.java:250)
at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState(DefaultProjectStateRegistry.java:277)
at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.applyToMutableState(DefaultProjectStateRegistry.java:249)
at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:42)
at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:26)
at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:35)
at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.lambda$run$0(LifecycleProjectEvaluator.java:100)
at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$applyToMutableState$0(DefaultProjectStateRegistry.java:250)
at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$withProjectLock$3(DefaultProjectStateRegistry.java:310)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:213)
at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.withProjectLock(DefaultProjectStateRegistry.java:310)
at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$fromMutableState$2(DefaultProjectStateRegistry.java:288)
at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLocks(DefaultWorkerLeaseService.java:284)
at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState(DefaultProjectStateRegistry.java:288)
at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.applyToMutableState(DefaultProjectStateRegistry.java:249)
at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.run(LifecycleProjectEvaluator.java:91)
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$3.execute(DefaultBuildOperationRunner.java:75)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71)
at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71)
at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:63)
at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:721)
at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:151)
at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:41)
at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:69)
at org.gradle.configuration.DefaultProjectsPreparer.prepareProjects(DefaultProjectsPreparer.java:46)
at org.gradle.configuration.BuildTreePreparingProjectsPreparer.prepareProjects(BuildTreePreparingProjectsPreparer.java:56)
at org.gradle.configuration.BuildOperationFiringProjectsPreparer$ConfigureBuild.run(BuildOperationFiringProjectsPreparer.java:52)
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$3.execute(DefaultBuildOperationRunner.java:75)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71)
at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71)
at org.gradle.configuration.BuildOperationFiringProjectsPreparer.prepareProjects(BuildOperationFiringProjectsPreparer.java:40)
at org.gradle.initialization.DefaultGradleLauncher.prepareProjects(DefaultGradleLauncher.java:226)
at org.gradle.initialization.DefaultGradleLauncher.doClassicBuildStages(DefaultGradleLauncher.java:163)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:148)
at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:124)
at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:72)
at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:67)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:213)
at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:67)
at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:56)
at org.gradle.api.tasks.GradleBuild$1.transform(GradleBuild.java:201)
at org.gradle.api.tasks.GradleBuild$1.transform(GradleBuild.java:198)
at org.gradle.composite.internal.RootOfNestedBuildTree$1.call(RootOfNestedBuildTree.java:123)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
at org.gradle.composite.internal.RootOfNestedBuildTree.run(RootOfNestedBuildTree.java:114)
at org.gradle.api.tasks.GradleBuild.build(GradleBuild.java:198)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
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.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:494)
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$3.execute(DefaultBuildOperationRunner.java:75)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71)
at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:479)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:462)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$400(ExecuteActionsTaskExecuter.java:105)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:273)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:251)
at org.gradle.internal.execution.steps.ExecuteStep.lambda$executeOperation$1(ExecuteStep.java:66)
at org.gradle.internal.execution.steps.ExecuteStep.executeOperation(ExecuteStep.java:66)
at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:34)
at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:47)
at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:44)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:34)
at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:72)
at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:42)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:53)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:39)
at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:44)
at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:77)
at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:58)
at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:54)
at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:32)
at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:57)
at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:38)
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:63)
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:30)
at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:176)
at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:76)
at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:47)
at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:43)
at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:32)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:39)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:25)
at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:102)
at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:95)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:39)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:83)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:44)
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.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:96)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:52)
at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:83)
at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:54)
at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:74)
at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:88)
at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:88)
at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:46)
at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:34)
at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:43)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution$3.withWorkspace(ExecuteActionsTaskExecuter.java:286)
at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:43)
at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:33)
at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:40)
at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:30)
at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:54)
at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:40)
at org.gradle.internal.execution.impl.DefaultExecutionEngine.rebuild(DefaultExecutionEngine.java:46)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$0(ExecuteActionsTaskExecuter.java:182)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:182)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:173)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
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:200)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:411)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:398)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:391)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:377)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: org.gradle.plugin.management.internal.InvalidPluginRequestException: Plugin request for plugin already on the classpath must not include a version
at org.gradle.plugin.use.resolve.internal.AlreadyOnClasspathPluginResolver.resolve(AlreadyOnClasspathPluginResolver.java:62)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.resolveToFoundResult(DefaultPluginRequestApplicator.java:204)
... 221 more
What's the difference betwen Android Direct and Android Indirect for the build?
Can you duplicate your project, remove all the stuff you don't want to share but keeping the multimodule structure in a way that reproduces the issue and share a zip file with that? That way I will be able to reproduce the issue myself and be able to check what's going on
Hey @soywiz, I added you as a contributor to my project. You should be able to git clone it and run ./gradew :wishlair:runAndroidDeviceDebug
I really appreciate your time to help me with this project. May I add you to the credits to my little game?
Awesome. Pretty cool your game, congratulations. Of course, if you feel like it, you can add me to the credits, not need it, but it is always appreciated :)
Now I can understand the issues you are facing and will be able to help you. Both in terms of the android issue, adjusting the plugin to support shared code and performance with the Terminal implementation by adjusting FastSpriteContainer
, TileMap
or both to cover your use-case. Since you have 80x25x2=4000 tinted sprites on the screen sharing a single texture, plain views are very heavyweight for low-powered devices.
Yesterday I invested plenty of time on korge-next, because I wanted to implement some optimizations before the next release that hopefully will happen tomorrow. I have to fix a few things, revert some performance experiments I tried to keep consistency between targets (Float/Double on JS), and manually test as much code as I can. I will try to fix the Android issue in this release.
I might not have more time this week after the release, but will help you with the remaining issues asap.
Thank you so much! Please let me know how you would like to be credited and links I should include. PM me if you prefer.
I hate to sound demanding, but the last major issue I'm facing is sound on native and JS. Longer samples are cut off some some reason. Is this something you plan to look at in not too long? Anyway I can help?
I have a two day long course Thursday and Friday, and then I will need to rest the weekend. Next week I could check. Is there an open issue describing the problem?
Js was not working for me due to a bug in Kotlin/JS with suspending inside arrayOf, fixed it in my soywiz.experiments
branch.
Native is taking a lot of time probably due to Json loading. I have to try to enable mimalloc and profile to figure out if there is something Im using not optimized on Native, while they improve performance, on JVM loads lighning fast, and on JS I guess it takes some more time because reading from network. If you plan to load them all, at start, maybe they could be packed in a single zip file or something so there is only one single request.
Sound clips >~1 second cuts off on Mac OS. Let me try Windows and Linux to see if the behaviour is the same. I can open a bug request if you'd like.
I hope you enjoy your course (mind if I ask which course? I'm a technical instructor so I'm curious!) and a well-earned rest this weekend!
About credits, either soywiz or Carlos Ballesteros Velasco is ok
Regarding to sound issue, please, open one. On MacOS native it uses CoreAudio
, on windows, waveOut
and on linux openAL
. That's a tiny layer for output audio without external dependencies (except for linux). If the problem is with that layer, each platform might work differently, if the problem is in a common part, the issue will happen consistently on all the targets.
The course is about personal growth from a Spanish company that makes courses for companies. They are normally offline courses, but this time it is online due to pandemic. I did already a course from them about business growth and was so interesting that I decided to do this one too. This is not a technical topic, but hope it is interesting too
Hey @soywiz,
I tested the sound on Linux native and it seems to work fine, but I have the same issue on Windows. I'll open a ticket.
Hope you enjoy your course, and best of luck on your business endeavours!
Checked that issue. I have been the whole day outside, and I'm going to start making a new release now. This release won't include the Android fix, but will make a smaller release next week fixing a few things including this.
Cool! Thanks for keeping me in the loop. Hope you enjoy your course tomorrow.
@soywiz: Don't worry too much about speeding up the Terminal. I managed to get rid of the 4000 sprites by manually rendering the terminal. That's sped things up a bit. Thanks!
I guess this is not relevant anymore, since the android target now uses the default Kotlin Android Multiplatform target
To reproduce:
The errror message is misleading. It's not
local.properties
that is missing but theplatforms/android
directory. Manually creating the missingplatforms/android
solves the issue for me.