when i use imagemagic montage by im4java,the -tile row x clos option throws a file unable to open exception - im4java

./magick -version
Version: ImageMagick 7.0.8-46 Q16 x86_64 2019-05-19
https://imagemagick.org
Copyright: © 1999-2019 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI
Delegates (built-in): bzlib freetype jng jpeg png tiff xml zlib
im4java-1.4.0.jar
when i run the command,it throws a exception
org.im4java.core.CommandException: org.im4java.core.CommandException: magick: unable to open image ' 9x4': No such file or directory # error/blob.c/OpenBlob/3497.
at org.im4java.core.ImageCommand.run(ImageCommand.java:219)
at dsl.Tools.ImageDealTool.ex(ImageDealTool.java:246)
at dsl.Tools.ImageDealTool.montage(ImageDealTool.java:122)
at dsl.Tools.ImageDealService.imageLayout(ImageDealService.java:106)
at dsl.controller.ImageDealController$2.run(ImageDealController.java:133)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.im4java.core.CommandException: magick: unable to open image ' 9x4': No such file or directory # error/blob.c/OpenBlob/3497.
at org.im4java.core.ImageCommand.finished(ImageCommand.java:253)
at org.im4java.process.ProcessStarter.run(ProcessStarter.java:314)
at org.im4java.core.ImageCommand.run(ImageCommand.java:215)
... 7 more
files.stream().forEach(s->{
if (!s.equals("transparency")) {
op.addImage(PIC_MODEL_PATH+s+".png");
}else {
op.addImage(MODEL_PATH+s+".png");
}
});
op.geometry(+0,+0);
op.addRawArgs("-geometry","+0+0");
op.addRawArgs("-background","none");
op.addRawArgs("-tile",cols+"x"+rows);
op.addImage(ARRAY_RESULT_PATH+result+".png");
ImageCommand cmd = new MontageCmd(false);
cmd.run(op);
why the -tile 9x4 option not work?

Related

When I use electron-builder to package an NSIS program, I get: Fatal error: Unable to parse version string for FileVersion

Electron-Builder Version: 22.14.5
Node Version: v16.13.1
Electron Version: 16.0.6
Electron Type (current, beta, nightly): current
Not using electron-updater
Target: nsis
Here is the console log.
Compilation succeeded.
• electron-builder version=22.14.5 os=5.10.89-1-MANJARO
• loaded configuration file=/home/aszswaz/document/notebook/code-example/webpack-electron-vue/config/electron-builder-win.js
• Specified application directory equals to project dir — superfluous or wrong configuration appDirectory=./
• writing effective config file=dist/electron-builder/builder-effective-config.yaml
• skipped dependencies rebuild reason=npmRebuild is set to false
• packaging platform=win32 arch=x64 electron=v16.0.6 appOutDir=dist/electron-builder/win-unpacked
• asar usage is disabled — this is strongly not recommended solution=enable asar and use asarUnpack to unpack files that must be externally available
• asar usage is disabled — this is strongly not recommended solution=enable asar and use asarUnpack to unpack files that must be externally available
⨯ cannot execute cause=exit status 1
errorOut=Fatal error: Unable to parse version string for FileVersion
0024:fixme:ver:GetCurrentPackageId (0032FE94 00000000): stub
command=wine /home/aszswaz/.cache/electron-builder/winCodeSign/winCodeSign-2.6.0/rcedit-ia32.exe /home/aszswaz/document/notebook/code-example/webpack-electron-vue/dist/electron-builder/win-unpacked/hanna.exe --set-version-string FileDescription hanna --set-version-string ProductName hanna --set-version-string LegalCopyright aszswaz --set-file-version v1.0.0 --set-product-version 1.0.0.0 --set-version-string InternalName hanna --set-version-string OriginalFilename '' --set-version-string CompanyName aszswaz --set-icon /home/aszswaz/document/notebook/code-example/webpack-electron-vue/public/icon.ico
workingDir=
This is the config file used.
module.exports = {
appId: "cn.aszswaz.demo.webpack-electron-vue",
productName: "hanna",
copyright: "aszswaz",
asar: false,
files: [
"dist/app/*",
"!**/node_modules/vue/*",
"!**/node_modules/vue-router/*"
],
artifactName: "${productName}-${arch}-${version}.${ext}",
directories: {
app: "./",
output: "./dist/electron-builder"
},
win: {
target: "nsis",
icon: "public/icon.ico"
},
nsis: {
oneClick: false,
perMachine: true,
allowToChangeInstallationDirectory: true
},
npmRebuild: false,
buildVersion: "v1.0.0",
electronCompile: false,
electronDownload: {
version: "16.0.6",
platform: "win32",
arch: "x64",
cache: process.cwd() + "/cache"
},
electronVersion: "v16.0.6"
}
What is the reason for this error? How can I fix this error?

Gradle sync failed : Cannot cast object 'main classesDirs' with class 'org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection'

I am facing below while building gradle.
I am using gradle 6.5 and gobblin apache-gobblin-incubating-sources-0.14.0 version.
I have added build.gradle file and idesSetup.gradle file.
D:\Gobblin\Apache_Gobblin_0.14.0_Win_O\apache-gobblin-incubating-sources-0.14.0>gradle build --stacktrace
Configuration on demand is an incubating feature.
> Configure project :
Build property: gobblinFlavor=standard
Build property: jdkVersion=1.8
Build property: sonatypeArtifactRepository=https://oss.sonatype.org/service/local/staging/deploy/maven2/
Build property: sonatypeArtifactSnapshotRepository=https://oss.sonatype.org/content/repositories/snapshots/
Build property: nexusArtifactRepository=https://repository.apache.org/service/local/staging/deploy/maven2
Build property: nexusArtifactSnapshotRepository=https://repository.apache.org/content/repositories/snapshots
Build property: doNotSignArtifacts=false
Build property: avroVersion=1.8.1
Build property: awsVersion=1.11.8
Build property: bytemanVersion=2.2.1
Build property: confluentVersion=2.0.1
Build property: hadoopVersion=2.3.0
Build property: hiveVersion=1.0.1
Build property: kafka08Version=0.8.2.2
Build property: kafka09Version=0.9.0.1
Build property: pegasusVersion=11.0.0
Build property: salesforceVersion=42.0.0
Detected Gradle version major=6 minor=5
FAILURE: Build failed with an exception.
* Where:
Script 'D:\Gobblin\Apache_Gobblin_0.14.0_Win_O\apache-gobblin-incubating-sources-0.14.0\gradle\scripts\idesSetup.gradle' line: 33
* What went wrong:
A problem occurred evaluating script.
> Failed to apply plugin [id 'org.gradle.java']
> Cannot cast object 'main classesDirs' with class 'org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection' to class 'java.io.File'
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating script.
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:93)
at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.lambda$apply$0(DefaultScriptPluginFactory.java:133)
at org.gradle.configuration.DefaultScriptTarget.addConfiguration(DefaultScriptTarget.java:74)
at
at org.gradle.configuration.BuildOperationScriptPlugin$1.execute(BuildOperationScriptPlugin.java:66)
at org.gradle.configuration.BuildOperationScriptPlugin$1.execute(BuildOperationScriptPlugin.java:63)
at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:49)
at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction$1.run(DefaultObjectConfigurationAction.java:75)
at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.execute(DefaultObjectConfigurationAction.java:183)
at org.gradle.api.internal.project.AbstractPluginAware.apply(AbstractPluginAware.java:49)
at org.gradle.api.internal.project.ProjectScript.apply(ProjectScript.java:37)
at org.gradle.api.Script$apply$1.callCurrent(Unknown Source)
at build_asgsreuarus8fsv3k38ysektr.run(D:\Gobblin\Apache_Gobblin_0.14.0_Win_O\apache-gobblin-incubating-sources-0.14.0\build.gradle:118)
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91)
org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:180)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
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.api.internal.plugins.PluginApplicationException: Failed to apply plugin [id 'org.gradle.java']
at org.gradle.api.internal.plugins.DefaultPluginManager.doApply(DefaultPluginManager.java:167)
at org.gradle.api.internal.plugins.DefaultPluginManager.addImperativePlugin(DefaultPluginManager.java:88)
at org.gradle.api.internal.plugins.DefaultPluginContainer.apply(DefaultPluginContainer.java:69)
at org.gradle.api.plugins.PluginContainer$apply$0.call(Unknown Source)
at jacoco_coveralls_support_e4f4lnoozsin33bmor3fkidu5$_run_closure2.doCall(D:\Gobblin\Apache_Gobblin_0.14.0_Win_O\apache-gobblin-incubating-sources-0.14.0\gradle\scripts\jacoco-coveralls-support.gradle:33)
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.util.ClosureBackedAction.execute(ClosureBackedAction.java:71)
at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:154)
at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:105)
at org.gradle.util.ConfigureUtil$WrappedConfigureAction.execute(ConfigureUtil.java:166)
at org.gradle.api.internal.DefaultMutationGuard$2.execute(DefaultMutationGuard.java:42)
at org.gradle.internal.Actions.with(Actions.java:251)
at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator$2$1.run(BuildOperationCrossProjectConfigurator.java:79)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:395)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:387)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:84)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator$2.run(BuildOperationCrossProjectConfigurator.java:76)
at org.gradle.internal.Factories$1.create(Factories.java:26)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:180)
at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)
at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.withProjectLock(DefaultProjectStateRegistry.java:271)
at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.access$500(DefaultProjectStateRegistry.java:145)
at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl$1.create(DefaultProjectStateRegistry.java:260)
at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLocks(DefaultWorkerLeaseService.java:251)
at org.gradle.internal.work.StopShieldingWorkerLeaseService.withoutLocks(StopShieldingWorkerLeaseService.java:50)
at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.withMutableState(DefaultProjectStateRegistry.java:256)
at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.withMutableState(DefaultProjectStateRegistry.java:226)
at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator.runProjectConfigureAction(BuildOperationCrossProjectConfigurator.java:73)
at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator.access$400(BuildOperationCrossProjectConfigurator.java:32)
at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator$1.doRunProjectConfigure(BuildOperationCrossProjectConfigurator.java:67)
at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator$BlockConfigureBuildOperation.run(BuildOperationCrossProjectConfigurator.java:121)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:395)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:387)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:84)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator.runBlockConfigureAction(BuildOperationCrossProjectConfigurator.java:64)
at org.gradle.api.internal.project.BuildOperationCrossProjectConfigurator.subprojects(BuildOperationCrossProjectConfigurator.java:49)
at org.gradle.api.internal.project.DefaultProject.subprojects(DefaultProject.java:1187)
at jdk.internal.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:484)
at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:196)
at org.gradle.internal.metaobject.CompositeDynamicObject.tryInvokeMethod(CompositeDynamicObject.java:98)
at org.gradle.internal.extensibility.MixInClosurePropertiesAsMethodsDynamicObject.tryInvokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:34)
at org.gradle.groovy.scripts.BasicScript$ScriptDynamicObject.tryInvokeMethod(BasicScript.java:134)
at org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:163)
at org.gradle.groovy.scripts.BasicScript.invokeMethod(BasicScript.java:83)
at jacoco_coveralls_support_e4f4lnoozsin33bmor3fkidu5.run(D:\Gobblin\Apache_Gobblin_0.14.0_Win_O\apache-gobblin-incubating-sources-0.14.0\gradle\scripts\jacoco-coveralls-support.gradle:31)
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91)
... 148 more
Caused by: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'main classesDirs' with class 'org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection' to class 'java.io.File'
at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.setProperty(BeanDynamicObject.java:380)
at org.gradle.internal.metaobject.BeanDynamicObject.trySetProperty(BeanDynamicObject.java:181)
at org.gradle.internal.metaobject.CompositeDynamicObject.trySetProperty(CompositeDynamicObject.java:66)
at org.gradle.internal.metaobject.ConfigureDelegate.setProperty(ConfigureDelegate.java:94)
at idesSetup_9ue98th295tn3ja17gvrv7c0v$_run_closure1$_closure2$_closure3.doCall(D:\Gobblin\Apache_Gobblin_0.14.0_Win_O\apache-gobblin-incubating-sources-0.14.0\gradle\scripts\idesSetup.gradle:33)
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.util.ClosureBackedAction.execute(ClosureBackedAction.java:71)
at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:154)
at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:105)
at org.gradle.plugins.ide.idea.model.IdeaModel.module(IdeaModel.java:90)
at org.gradle.plugins.ide.idea.model.IdeaModel_Decorated.module(Unknown Source)
at org.gradle.plugins.ide.idea.model.IdeaModel_Decorated$module.call(Unknown Source)
at idesSetup_9ue98th295tn3ja17gvrv7c0v$_run_closure1$_closure2.doCall(D:\Gobblin\Apache_Gobblin_0.14.0_Win_O\apache-gobblin-incubating-sources-0.14.0\gradle\scripts\idesSetup.gradle:27)
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.util.ClosureBackedAction.execute(ClosureBackedAction.java:71)
at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:154)
at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:105)
at org.gradle.util.ConfigureUtil$WrappedConfigureAction.execute(ConfigureUtil.java:166)
at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction$1$1.run(DefaultCollectionCallbackActionDecorator.java:100)
at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.reapply(DefaultUserCodeApplicationContext.java:60)
at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction$1.run(DefaultCollectionCallbackActionDecorator.java:97)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:395)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:387)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:84)
at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction.execute(DefaultCollectionCallbackActionDecorator.java:94)
at org.gradle.api.internal.collections.CollectionFilter$1.execute(CollectionFilter.java:59)
at org.gradle.internal.ImmutableActionSet$SingletonSet.execute(ImmutableActionSet.java:225)
at org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:264)
at org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:253)
at org.gradle.api.internal.plugins.DefaultPluginContainer.pluginAdded(DefaultPluginContainer.java:49)
at org.gradle.api.internal.plugins.DefaultPluginManager.addPlugin(DefaultPluginManager.java:187)
at org.gradle.api.internal.plugins.DefaultPluginManager.access$300(DefaultPluginManager.java:51)
* Get more help at https://help.gradle.org
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.5/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 2s
idesSetup.gradle :-
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
apply plugin: 'idea'
subprojects {
plugins.withType(JavaPlugin) {
plugins.apply('idea')
plugins.apply('eclipse')
// Configure the IDEA plugin to (1) add the codegen as source dirs and (2) work around
// an apparent bug in the plugin which doesn't set the outputDir/testOutputDir as documented
idea.module {
// Gradle docs claim the two settings below are the default, but
// the actual defaults appear to be "out/production/$MODULE_NAME"
// and "out/test/$MODULE_NAME". Changing it so IDEA and gradle share
// the class output directory.
outputDir = sourceSets.main.output.classesDirs
testOutputDir = sourceSets.test.output.classesDirs
}
}
}
Build.gradle :-
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
apply from: 'gradle/scripts/environment.gradle'
buildscript {
apply from: 'gradle/scripts/repositories.gradle'
apply from: 'gradle/scripts/defaultBuildProperties.gradle'
apply from: 'gradle/scripts/computeVersions.gradle'
apply from: file('gradle/scripts/buildscript.gradle'), to: buildscript
buildscript.repositories.addAll(project.repositories)
dependencies {
classpath 'org.apache.ant:ant:1.9.4'
classpath 'gradle.plugin.org.inferred:gradle-processors:3.3.0'
classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:1.0.2'
classpath 'io.spring.gradle:dependency-management-plugin:0.6.0.RELEASE'
classpath 'me.champeau.gradle:jmh-gradle-plugin:0.4.4'
}
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "gradle.plugin.nl.javadude.gradle.plugins:license-gradle-plugin:0.14.0"
}
}
apply plugin: "com.github.hierynomus.license"
downloadLicenses {
includeProjectDependencies = true
ext.apacheTwo = license('Apache License, Version 2.0', 'http://opensource.org/licenses/Apache-2.0')
ext.bsd = license('BSD License', 'http://www.opensource.org/licenses/bsd-license.php')
ext.bsd3 = license('BSD 3-clause', 'https://opensource.org/licenses/BSD-3-Clause')
ext.cddlGplv2 = license('CDDL + GPLv2 with classpath exception', 'https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html')
ext.spl = license('SPL', 'http://opensource.org/licenses/SPL-1.0');
ext.epl = license('Eclipse Public License - Version 1.0', 'https://opensource.org/licenses/EPL-1.0')
licenses = [
(group('com.linkedin.gobblin')) : apacheTwo,
// https://zookeeper.apache.org/
(group('org.apache.zookeeper')) : apacheTwo,
// http://testng.org/doc/
(group('org.testng:testng')) : apacheTwo,
// https://db.apache.org/jdo/index.html
(group('javax.jdo')) : apacheTwo,
// Based on other javax licenses
(group('javax.servlet.jsp')) : cddlGplv2,
(group('javax.servlet')) : cddlGplv2,
(group('javax.transaction')) : cddlGplv2,
// http://commons.apache.org/proper/commons-beanutils/
(group('commons-beanutils')) : apacheTwo,
// http://jakarta.apache.org/regexp/
(group('regexp')) : apacheTwo,
// http://forge.ow2.org/projects/asm/
(group('asm')) : bsd,
// https://github.com/codehaus/jettison/blob/master/pom.xml
(group('org.codehaus.jettison')) : apacheTwo,
// https://github.com/stephenc/jcip-annotations/blob/master/LICENSE.txt
(group('net.jcip')) : apacheTwo,
// https://github.com/google/re2j/blob/master/LICENSE
(group('com.google.re2j')) : bsd3,
// https://github.com/findbugsproject/findbugs/issues/128
(group('com.google.code.findbugs')) : bsd3,
// http://www.beanshell.org/license.html
(group('org.beanshell')) : spl,
// http://www.mchange.com/projects/c3p0/
(group('c3p0')) : epl,
'antlr-runtime-3.4.jar' : apacheTwo
]
aliases = [
(apacheTwo) : ['The Apache Software License, Version 2.0', 'Apache 2', 'Apache License Version 2.0',
'Apache License, Version 2.0', 'Apache License 2.0', 'Apache Version 2.0, January 2004',
license('Apache License', 'http://www.apache.org/licenses/LICENSE-2.0')],
(bsd) : ['BSD', license('New BSD License', 'http://www.opensource.org/licenses/bsd-license.php')]
]
dependencyConfiguration = 'compile'
excludeDependencies = [
'gobblin-throttling-service-client-data-template-*.jar',
'gobblin-throttling-service-api-data-template-*.jar',
'gobblin-flow-config-service-client-data-template-*.jar',
'gobblin-rest-api-data-template-*.jar',
'gobblin-throttling-service-server-data-template-*.jar',
'gobblin-flow-config-service-server-data-template-*.jar',
'gobblin-rest-server-data-template-*.jar',
'gobblin-flow-config-service-api-data-template-*.jar'
]
}
apply from: 'gradle/scripts/repositories.gradle'
apply plugin: 'org.inferred.processors'
apply plugin: 'io.spring.dependency-management'
apply from: 'gradle/scripts/configureSubprojects.gradle'
apply from: 'gradle/scripts/idesSetup.gradle'
apply from: 'gradle/scripts/jacoco-coveralls-support.gradle'
apply from: 'gradle/scripts/dependencyDefinitions.gradle'
apply from: 'gradle/scripts/restli.gradle'
apply from: 'gradle/scripts/testSetup.gradle'
apply from: 'gradle/scripts/globalDependencies.gradle'
apply from: 'gradle/scripts/javaPlugin.gradle'
apply from: 'gradle/scripts/utilities.gradle'
apply from: 'gradle/scripts/javadoc.gradle'
apply from: 'gradle/scripts/sourcesJar.gradle'
apply from: 'gradle/scripts/mavenPublishing.gradle'
apply from: 'gradle/scripts/nexusPublishing.gradle'
apply from: 'gradle/scripts/javaVersionCheck.gradle'
apply from: 'gradle/scripts/rat.gradle'
apply from: 'gradle/scripts/release.gradle'
task wrapper(type: Wrapper) { gradleVersion = '2.13' }
/*
* Hack for upgrading pegasus to version 11.0.0. For some reason, the gradle-plugins in
* that version fails to bring in "tools.jar" into the classpath. The rest.li team is actively
* seeking for a clean fix. This part will be removed later when the fix is ready
*/
allprojects {
tasks.matching { it.name == 'generateRestModel' }.all {
doFirst {
it.codegenClasspath += files("${System.getProperty('java.home')}/../lib/tools.jar")
}
}
}
rat {
excludes = [
'**/.git/**',
'**/.github/**',
'**/.gradle/**',
'**/.project',
'**/.factorypath',
'**/.settings/**',
'**/.classpath',
'**/*.iml',
'**/*.iws',
'**/*.ipr',
'**/.rubyversion',
'gradle/wrapper/**',
'gradlew',
'**/changes.md',
'**/README.md',
'**/.ruby-version',
'**/.DS_Store/**',
'**/.gitignore',
'**/build/**',
'**/target/**',
'**/bin/**',
'**/test-output/**',
'**/Gemfile.lock',
'**/*.tsv',
'**/*.csv',
'**/*.svg',
'**/*.groovy',
'**/*.yml',
'**/*.properties',
'**/*.conf',
'**/*.xml',
'**/*.md',
'**/*.json',
'**/*.avsc',
'**/*.ddl',
'**/*.dml',
'**/*.txt',
'**/*.pull',
'**/*.job',
'**/*.log',
'**/*.sql',
'**/*.zip',
'**/*.gz',
'**/*.tgz',
'**/*.tar',
'**/*.lck',
'**/*.ctrl',
'**/*.dat',
'**/*.pem',
'**/*.crc',
'**/*.jst',
'**/*.orc',
'**/*.rc',
'**/*.avro',
'**/*.avro.*',
'**/*.png',
'**/*.jpg',
'**/*.jpeg',
'**/*.eot',
'**/*.ttf',
'**/*.woff',
'**/*.woff2',
'**/Dockerfile',
'**/file*',
'**/*.epf',
'**/*.pdsc',
'**/*.yml',
'**/*.inc',
'**/*.py',
'**/*.gradle',
'**/*.css',
'**/*.sh',
'**/*.avro',
'**/*.txt.*',
'**/*.key',
'**/*.json.*',
'**/*.template',
'**/migrationConfig',
'**/testTable',
'**/encryption_provider_test_keystore',
'**/default_dataset_urn',
'**/metastore_db',
'**/grok/**',
'**/mock-couchbase/**',
'**/mainGeneratedRest/**',
'**/mainGeneratedDataTemplate/**',
'**/gen-java/**',
'**/META-INF/**',
'**/package-list',
'**/WebmasterPerformanceTuningMetrics',
'.reviewboardrc',
'CONTRIBUTORS',
'RELEASE.md',
'DISCLAIMER',
'NOTICE',
'LICENSE'
]
}
Unfortunately Gobblin doesn't build on Windows. Try to use Linux (WSL on Windows).

psycopg2 ImportError: undefined symbol: PQconninfo

Couldn't able to import psycopg2
Output in python console:
import psycopg2
Traceback (most recent call last):
File "", line 1, in
File "/home/user/.py_virtualenvs/verb_py3/lib/python3.5/site-packages/psycopg2/init.py", line 50, in
from psycopg2._psycopg import ( # noqa
ImportError: /home/user/.py_virtualenvs/verb_py3/lib/python3.5/site-packages/psycopg2/_psycopg.cpython-35m-x86_64-linux-gnu.so: undefined symbol: PQconninfo
Installed the psycopg2-binary package solved my issue.
pip install psycopg2-binary
This might be a defect problem in the underlying system. There might be multiple version of shared library, and at runtime you may not be able to find the proper library. It is usually painful to resolve. Since I am seeing the same problem, I will give a try at how to figure out the problem. This will be more useful than giving a fixed solution. I still have to find a solution for myself: 1. build the libpq library from a newer version. 2. find the proper libpq that was used at compile time by psycopg2.
Go to the source directory of psycopg2:
myuid#mycomputer:~/Downloads/psycopg2$ find . -name "*.c" | xargs grep PQconninfo
./psycopg/psycopgmodule.c: PQconninfoOption *options = NULL;
./psycopg/psycopgmodule.c: options = PQconninfoParse(Bytes_AS_STRING(dsn), &err);
./psycopg/psycopgmodule.c: PyErr_SetString(OperationalError, "PQconninfoParse() failed");
./psycopg/psycopgmodule.c: PQconninfoFree(options); /* safe on null */
./psycopg/connection_int.c: PQconninfoOption *connopts, *ptr;
./psycopg/connection_int.c: connopts = PQconninfoParse(pgdsn, NULL);
./psycopg/connection_int.c: PQconninfoFree(connopts);
./psycopg/connection_int.c: PQconninfoOption *options = NULL;
./psycopg/connection_int.c: if (!(options = PQconninfoParse(dsn, NULL))) {
./psycopg/connection_int.c: PQconninfoFree(options);
./psycopg/conninfo_type.c:".. seealso:: libpq docs for `PQconninfo()`__ for details.\n"
./psycopg/conninfo_type.c: PQconninfoOption *options = NULL;
./psycopg/conninfo_type.c: if (!(options = PQconninfo(self->conn->pgconn))) {
./psycopg/conninfo_type.c: PQconninfoFree(options);
./psycopg/conninfo_type.c: PyErr_SetString(NotSupportedError, "PQconninfo not available in libpq < 9.3");
./psycopg/connection_type.c: PQconninfoOption *options = NULL;
./psycopg/connection_type.c: if (!(options = PQconninfo(self->pgconn))) {
./psycopg/connection_type.c: PQconninfoFree(options);
./psycopg/connection_type.c: PyErr_SetString(NotSupportedError, "PQconninfo not available in libpq < 9.3");
./psycopg/utils.c:/* Make a dict out of PQconninfoOption array */
./psycopg/utils.c:psyco_dict_from_conninfo_options(PQconninfoOption *options, int include_password)
./psycopg/utils.c: PQconninfoOption *o;
Note: psycopg author already gave you an answer by the line:
"PQconninfo not available in libpq < 9.3"
Which means that the problem is the older libpq at RUNTIME, you probably used a newer version of libpq otherwise, psycopg2 may not compile.
By the line: PQconninfo(self->conn->pgconn)
You know that PQconninfo is a C function and it should be in your libpq
Your error message usually tells you where is the problem, in my case it is:
/usr/local/lib/python3.8/site-packages/psycopg2-2.8.5.dev0-py3.8-linux-x86_64.egg/psycopg2
Full error: >>> import psycopg2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.8/site-packages/psycopg2-2.8.5.dev0-py3.8-linux-x86_64.egg/psycopg2/__init__.py", line 50, in <module>
from psycopg2._psycopg import ( # noqa
ImportError: /usr/local/lib/python3.8/site-packages/psycopg2-2.8.5.dev0-py3.8-linux-x86_64.egg/psycopg2/_psycopg.cpython-38-x86_64-linux-gnu.so: undefined symbol: PQconninfo
Here you should find a shared library:
_psycopg.cpython-38-x86_64-linux-gnu.so
Take a look at the library:
ldd _psycopg.cpython-38-x86_64-linux-gnu.so
linux-vdso.so.1 => (0x00007ffe985c7000)
libpq.so.5 => /usr/lib64/libpq.so.5 (0x00007ff922a13000)
libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007ff9227f7000)
libc.so.6 => /usr/lib64/libc.so.6 (0x00007ff922429000)
libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007ff9221b7000)
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007ff921d54000)
libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x00007ff921a6b000)
libcom_err.so.2 => /usr/lib64/libcom_err.so.2 (0x00007ff921867000)
libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00007ff92161a000)
libldap_r-2.4.so.2 => /usr/lib64/libldap_r-2.4.so.2 (0x00007ff9213bb000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff922e87000)
libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x00007ff921188000)
libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007ff920f84000)
libz.so.1 => /usr/lib64/libz.so.1 (0x00007ff920d6e000)
libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x00007ff920b5e000)
libkeyutils.so.1 => /usr/lib64/libkeyutils.so.1 (0x00007ff92095a000)
libresolv.so.2 => /usr/lib64/libresolv.so.2 (0x00007ff920741000)
liblber-2.4.so.2 => /usr/lib64/liblber-2.4.so.2 (0x00007ff920532000)
libsasl2.so.3 => /usr/lib64/libsasl2.so.3 (0x00007ff920315000)
libssl3.so => /usr/lib64/libssl3.so (0x00007ff9200bc000)
libsmime3.so => /usr/lib64/libsmime3.so (0x00007ff91fe94000)
libnss3.so => /usr/lib64/libnss3.so (0x00007ff91fb65000)
libnssutil3.so => /usr/lib64/libnssutil3.so (0x00007ff91f935000)
libplds4.so => /usr/lib64/libplds4.so (0x00007ff91f731000)
libplc4.so => /usr/lib64/libplc4.so (0x00007ff91f52c000)
libnspr4.so => /usr/lib64/libnspr4.so (0x00007ff91f2ee000)
libselinux.so.1 => /usr/lib64/libselinux.so.1 (0x00007ff91f0c7000)
libcrypt.so.1 => /usr/lib64/libcrypt.so.1 (0x00007ff91ee90000)
librt.so.1 => /usr/lib64/librt.so.1 (0x00007ff91ec88000)
libpcre.so.1 => /usr/lib64/libpcre.so.1 (0x00007ff91ea26000)
libfreebl3.so => /usr/lib64/libfreebl3.so (0x00007ff91e823000)
Notice the line: libpq.so.5 => /usr/lib64/libpq.so.5
Now take a look at this library and only interested in the PPconninfo (it has a lots of functions and data)
nm -D /usr/lib64/libpq.so.5 | grep PQconninfo
000000000000cb90 T PQconninfoFree
000000000000df30 T PQconninfoParse
See you don't have PQconninfo function.
I believe it is more helpful by illustrating how to solve this problem; this may help you solve many similar problems.
Now I will add the solution on my system:
It turned out that there are multiple libpg on my system.
cd /usr
find . -name "libpq*"
... many others ignored
./pgsql-11/lib/libpq.so
Then update LD_LIBRARY_PATH to /usr/pgsql-11/lib:/usr/local/lib64, then the problem is gone.
python3.8
Python 3.8.1 (default, Jan 7 2020, 15:07:37)
[GCC 7.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import psycopg2
Re-installing psycopg2 using conda instead of using pip resolved the issue.
Just like #Kemin Zhou has said in one of the answers, one of the reasons for this problem could be an older libpq.so file.
I'm currently using Cent OS 7 and the version of postgresql-lib installed was:
$ yum list installed | grep postgres
Failed to set locale, defaulting to C
postgresql.x86_64 9.2.24-4.el7_8 installed
postgresql-devel.x86_64 9.2.24-4.el7_8 installed
postgresql-libs.x86_64 9.2.24-4.el7_8 installed
And I was not even able to update it because yum was unable to find the later versions for it:
$ yum list --showduplicates postgresql
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* epel: mirrors.ircam.fr
Installed Packages
postgresql.x86_64 9.2.24-4.el7_8 installed
Available Packages
postgresql.i686 9.2.24-2.el7 base
postgresql.x86_64 9.2.24-2.el7 base
postgresql.i686 9.2.24-2.el7_7 updates
postgresql.x86_64 9.2.24-2.el7_7 updates
postgresql.i686 9.2.24-4.el7_8 updates
postgresql.x86_64 9.2.24-4.el7_8 updates
This link helped me out.
Using that link I first added this repo that contained the updated postgresql10-libs:
$ yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
and then I installed the updated postgresql10-libs
$ yum install postgresql10-libs.x86_64

Discrepancy building project in Android Studio vs Gradle

I have a complex Android project consisting of multiple Java and C++ modules and using several build tools (e.g. CMake, swig). The project builds just fine when built from the command line using ./gradlew clean assembleDebug but fails to build when built from Android Studio. I cleaned, invalidated caches, synced, etc to no avail.
Important to note: this project builds fine in Android Studio too on other systems like Ubuntu (17.* and 18.*) but fails on MacOS (10.13 but also earlier if I remember correctly).
Here is the error reported by Android Studio:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':IndoorsLocator:runSwig'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:84)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:236)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:228)
at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:228)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:215)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:77)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:58)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:32)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:113)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
at org.gradle.initialization.DefaultGradleLauncher$3.execute(DefaultGradleLauncher.java:196)
at org.gradle.initialization.DefaultGradleLauncher$3.execute(DefaultGradleLauncher.java:193)
at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:193)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:119)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:102)
at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:71)
at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:50)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.tooling.internal.provider.runner.RunAsBuildOperationBuildActionRunner$1.execute(RunAsBuildOperationBuildActionRunner.java:43)
at org.gradle.tooling.internal.provider.runner.RunAsBuildOperationBuildActionRunner$1.execute(RunAsBuildOperationBuildActionRunner.java:40)
at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
at org.gradle.tooling.internal.provider.runner.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:40)
at org.gradle.tooling.internal.provider.runner.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:75)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:44)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:29)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:47)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'swig''
at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:198)
at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:329)
at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:86)
... 5 more
Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'swig'
at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27)
at net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36)
at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:68)
... 5 more
Caused by: java.io.IOException: Cannot run program "swig" (in directory "/Users/tom/workspace/indoors-scripts/setup-scripts/workspace-android/IndoorsAndroid/IndoorsLocator"): error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25)
... 7 more
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 8 more
On the command line:
Here is what the definition of "runSwig"-task looks like:
task runSwig(type: Exec) {
commandLine 'swig'
doFirst {
coreWrapperDir.mkdirs()
}
def swigFileCore = "${projectDir}/src/" + "swig.i"
def headerFiles = "${projectDir}/include"
def swigWrapFile = 'src/swig_wrap.cxx'
inputs.file swigFileCore
inputs.dir headerFiles
outputs.dir coreWrapperDir.absolutePath
outputs.file swigWrapFile
// this write the generated swig C++ file to "${projectDir}/src"
args '-c++', '-java', '-package', javaPackage, '-noexcept', '-outdir', coreWrapperDir.absolutePath, "-I${headerFiles}", '-o', swigWrapFile, swigFileCore
}
The log indicates that Android Studio is looking for swig in the current working directory instead of looking it up inside $PATH, but I am clueless about how to tell Android Studio where to look instead. Any ideas?
Cannot run program "swig" (in directory "/Users/tom/workspace/indoors-scripts/setup-scripts/workspace-android/IndoorsAndroid/IndoorsLocator")
There is a need for some debugging to get more info about the problem. Add the code below to your build.gradle file of IndoorsLocator module and run it again. This should print the path environment variable and also run a java command which I'm assuming is also within the path. Then perform a gradle sync and compile or run the code. Open the build window as in your first image and when the build stops, find the testPath within the Run tasks list and share it's output. Or more preferably, switch the Build to text view as in the image below and share the complete log. Testing it from the command would also help to make sure that it's running as expected.
tasks.whenTaskAdded { addedTask ->
if (addedTask.name.startsWith("preDebugBuild")) {
addedTask.dependsOn 'testPath'
}
}
task testPath {
mustRunBefore 'checkDebugManifest'
doLast {
exec {
commandLine 'echo', '$PATH'
}
exec {
commandLine 'java', '-version'
}
}
}
Update 1
Based on your first comment, this is a weird outcome! Java is supposed to be in the path, so $PATH must've been set somehow yet echo $PATH didn't work. Updated the code to further go down the rabbit hole.
tasks.whenTaskAdded { addedTask ->
if (addedTask.name.startsWith("preDebugBuild")) {
addedTask.dependsOn 'testPath'
}
}
task testPath {
doLast {
exec {
commandLine 'printenv'
}
exec {
commandLine 'which', 'java'
}
exec {
commandLine 'which', 'swig'
}
}
}
PS: my mistake on the mustRunBefore, it doesn't exist and I added it accident!
Turns out this is due to a "bug" in OSX: https://github.com/gradle/gradle/issues/5631#issuecomment-401775152
I did not find a way to easily fix it for the latest version of OSX (https://apple.stackexchange.com/questions/106355/setting-the-system-wide-path-environment-variable-in-mavericks) but worked around it by hardcoding the path in build.gradle:
task runSwig(type: Exec) {
// workaround for OSX, see https://stackoverflow.com/q/51383822/198996
File testFile = new File('/usr/local/bin/swig');
if (testFile.isFile()) {
commandLine '/usr/local/bin/swig'
} else {
commandLine 'swig'
}
}
That's an awful workaround if you ask me, so I would be happy to award the bounty to whoever comes up with a cleaner solution.
Have you added this line in your build.gradle?
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn runSwig
}
Anyway you can refer to this github's project that uses swig: https://github.com/sureshjoshi/android-ndk-swig-example

selenium Java get(index).sendKeys method can not be resolved

Wrote the following method to send keys into an element
public void enterDataIntoPickerWheel(String xpathSelector, String text,int index) {
waitForElement(By.xpath(xpathSelector));
driver.findElements(By.xpath(xpathSelector)).get(index).sendKeys(text);
}
It used to work perfectly fine, but not sure now the the code doesn't compile.
I am using Java 1.7 as my compiler.
My java and mvn versions:
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T12:57:37+01:00)
Maven home: /Users/Bindu/Documents/Programs/apache-maven-3.3.3
Java version: 1.7.0_79, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.11.1", arch: "x86_64", family: "mac"
Am I missing something here??
Thanks #Mukeshotwani I found a work around for this. Changed the code to following and it works for fine.
public void enterDataIntoPickerWheel(String xpathSelector, String text, int index) { waitForElement(By.xpath(xpathSelector));
List wedriver.findElements(By.xpath(xpathSelector)); we.get(index).sendKeys(text); }

Resources