Kotlin 胶囊 Gradle 错误
Kotlin Capsule Gradle Error
我在尝试使用 Gradle 创建胶囊时遇到错误。
Failed to find Premain-Class manifest attribute in
E:\Dropbox\Projects\Kotlin\Games\CSGO\Charlatano\build\libs\capsule.jar
Error occurred during initialization of VM
agent library failed to init: instrument
CAPSULE: Client connection failed.
CAPSULE EXCEPTION: Accept timed out while processing null null: null (for stack trace, run with -Dcapsule.log=verbose)
Press any key to continue . . .
这是我的 build.script
buildscript {
ext.kotlin_version = '1.1-M01'
ext.jna_version = '4.3.0-SNAPSHOT'
ext.quasar_version = '0.7.6'
ext.gdxVersion = '1.9.4'
repositories {
mavenCentral()
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap-1.1' }
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: 'java'
apply plugin: 'kotlin'
apply plugin: 'application'
group 'com.charlatano'
version '0.4.3'
mainClassName = 'com.charlatano.Charlatano'
sourceCompatibility = JavaVersion.VERSION_1_8
repositories {
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap-1.1' }
}
configurations {
quasar
capsule
}
dependencies {
compile group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib', version: kotlin_version
compile group: 'net.java.dev.jna', name: 'jna', version: jna_version
compile group: 'net.java.dev.jna', name: 'jna-platform', version: jna_version
compile group: 'org.jire.arrowhead', name: 'arrowhead', version: '1.2.1'
capsule group: 'co.paralleluniverse', name: 'capsule', version: '1.0.3'
quasar group: 'co.paralleluniverse', name: 'quasar-core', version: quasar_version
compile group: 'co.paralleluniverse', name: 'quasar-core', version: quasar_version
compile group: 'co.paralleluniverse', name: 'quasar-actors', version: quasar_version
compile group: 'co.paralleluniverse', name: 'quasar-kotlin', version: quasar_version
compile "com.badlogicgames.gdx:gdx:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop"
}
task capsule(type: Jar, dependsOn: jar) {
archiveName = "capsule.jar"
from jar // embed our application jar
from { configurations.runtime } // embed dependencies
from(configurations.capsule.collect { zipTree(it) }) { include 'Capsule.class' } // we just need the single Capsule class
manifest {
attributes(
'Main-Class' : 'Capsule',
'Application-Class' : mainClassName,
'Extract-Capsule' : 'false', // no need to extract the capsule
'Min-Java-Version' : '1.8.0',
'JVM-Args' : run.jvmArgs.join(' '),
'System-Properties' : run.systemProperties.collect { k,v -> "$k=$v" }.join(' '),
'Java-Agents' : configurations.quasar.iterator().next().getName()
)
}
}
run {
jvmArgs "-javaagent:${configurations.quasar.iterator().next()}"
}
这是它生成的 jar 文件。
https://dl.dropboxusercontent.com/u/91292881/ShareX/2016/09/libs.zip
请告诉我哪里不对,谢谢!
capsule
中的 MANIFEST.md 似乎损坏了,缺少如下 Premain-Class
属性:
Premain-Class: org.eclipse.package.ObjectSizeFetcher
您的 capsule
清单文件应如下所示:
Manifest-Version: 1.0
Created-By: 1.5.0_18 (Sun Microsystems Inc.)
Premain-Class: org.eclipse.package.ObjectSizeFetcher
检查类似问题以查找更多信息:"Failed to load Premain-Class manifest attribute" while trying to get the size of an object using java agent
我在尝试使用 Gradle 创建胶囊时遇到错误。
Failed to find Premain-Class manifest attribute in
E:\Dropbox\Projects\Kotlin\Games\CSGO\Charlatano\build\libs\capsule.jar
Error occurred during initialization of VM
agent library failed to init: instrument
CAPSULE: Client connection failed.
CAPSULE EXCEPTION: Accept timed out while processing null null: null (for stack trace, run with -Dcapsule.log=verbose)
Press any key to continue . . .
这是我的 build.script
buildscript {
ext.kotlin_version = '1.1-M01'
ext.jna_version = '4.3.0-SNAPSHOT'
ext.quasar_version = '0.7.6'
ext.gdxVersion = '1.9.4'
repositories {
mavenCentral()
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap-1.1' }
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: 'java'
apply plugin: 'kotlin'
apply plugin: 'application'
group 'com.charlatano'
version '0.4.3'
mainClassName = 'com.charlatano.Charlatano'
sourceCompatibility = JavaVersion.VERSION_1_8
repositories {
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap-1.1' }
}
configurations {
quasar
capsule
}
dependencies {
compile group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib', version: kotlin_version
compile group: 'net.java.dev.jna', name: 'jna', version: jna_version
compile group: 'net.java.dev.jna', name: 'jna-platform', version: jna_version
compile group: 'org.jire.arrowhead', name: 'arrowhead', version: '1.2.1'
capsule group: 'co.paralleluniverse', name: 'capsule', version: '1.0.3'
quasar group: 'co.paralleluniverse', name: 'quasar-core', version: quasar_version
compile group: 'co.paralleluniverse', name: 'quasar-core', version: quasar_version
compile group: 'co.paralleluniverse', name: 'quasar-actors', version: quasar_version
compile group: 'co.paralleluniverse', name: 'quasar-kotlin', version: quasar_version
compile "com.badlogicgames.gdx:gdx:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop"
}
task capsule(type: Jar, dependsOn: jar) {
archiveName = "capsule.jar"
from jar // embed our application jar
from { configurations.runtime } // embed dependencies
from(configurations.capsule.collect { zipTree(it) }) { include 'Capsule.class' } // we just need the single Capsule class
manifest {
attributes(
'Main-Class' : 'Capsule',
'Application-Class' : mainClassName,
'Extract-Capsule' : 'false', // no need to extract the capsule
'Min-Java-Version' : '1.8.0',
'JVM-Args' : run.jvmArgs.join(' '),
'System-Properties' : run.systemProperties.collect { k,v -> "$k=$v" }.join(' '),
'Java-Agents' : configurations.quasar.iterator().next().getName()
)
}
}
run {
jvmArgs "-javaagent:${configurations.quasar.iterator().next()}"
}
这是它生成的 jar 文件。 https://dl.dropboxusercontent.com/u/91292881/ShareX/2016/09/libs.zip
请告诉我哪里不对,谢谢!
capsule
中的 MANIFEST.md 似乎损坏了,缺少如下 Premain-Class
属性:
Premain-Class: org.eclipse.package.ObjectSizeFetcher
您的 capsule
清单文件应如下所示:
Manifest-Version: 1.0
Created-By: 1.5.0_18 (Sun Microsystems Inc.)
Premain-Class: org.eclipse.package.ObjectSizeFetcher
检查类似问题以查找更多信息:"Failed to load Premain-Class manifest attribute" while trying to get the size of an object using java agent