VSTS - Problems with Xamarin Proguard Version and JDK 1.8 - xamarin.android

I have a Xamarin Forms Project that I'm trying to integrate with HockeyApps using Continuous Integration with VSTS.
My app compiles using Java 1.8 and it uses ProGuard to shrink the android apk file.
But when java try to compile the application, it finds that the Installed version of proguard is not compatible with Java 1.8
The error is the following:
... Can't process class [android/app/ActivityTracker.class] Unsupported class version number [52.0] maximum 51.0, Java 1.7...
In my local visual studio installation, I fixed it replacing the default proguard version that Xamarin Installs for the lastest one 5.x...
Anybody knows how to do it with VSTS?
DETAILED ERROR:
_CompileToDalvikWithDx:
C:\Program Files\Java\jdk1.8.0_102\\bin\java.exe -jar C:\java\androidsdk\android-sdk\tools\proguard\lib\proguard.jar -include C:\java\androidsdk\android-sdk\tools\proguard\proguard-android.txt -include obj\Release\proguard\proguard_xamarin.cfg -include obj\Release\proguard\proguard_project_references.cfg -include obj\Release\proguard\proguard_project_primary.cfg -include proguard.cfg "-injars 'obj\Release\proguard\__proguard_input__.jar';'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v7.0\mono.android.jar';'obj\Release\__library_projects__\FormsViewGroup\library_project_imports\formsviewgroup.jar';'obj\Release\__library_projects__\HockeySDK.AndroidBindings\library_project_imports\bin\classes.jar';'C:\Users\buildguest\AppData\Local\Xamarin\Xamarin.Android.Support.Animated.Vector.Drawable\23.3.0.0\embedded\classes.jar';'C:\Users\buildguest\AppData\Local\Xamarin\Xamarin.Android.Support.Design\23.3.0.0\embedded\classes.jar';'C:\Users\buildguest\AppData\Local\Xamarin\Xamarin.Android...
java.io.IOException: Can't read [C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v7.0\mono.android.jar] (Can't process class [android/app/ActivityTracker.class] (Unsupported class version number [52.0] (maximum 51.0, Java 1.7)))
at proguard.InputReader.readInput(InputReader.java:230)
at proguard.InputReader.readInput(InputReader.java:200)
at proguard.InputReader.readInput(InputReader.java:178)
at proguard.InputReader.execute(InputReader.java:78)
at proguard.ProGuard.readInput(ProGuard.java:196)
at proguard.ProGuard.execute(ProGuard.java:78)
at proguard.ProGuard.main(ProGuard.java:492)
Caused by: java.io.IOException: Can't process class [android/app/ActivityTracker.class] (Unsupported class version number [52.0] (maximum 51.0, Java 1.7))
at proguard.io.ClassReader.read(ClassReader.java:112)
at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
at proguard.io.JarReader.read(JarReader.java:65)
at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)
at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)
at proguard.InputReader.readInput(InputReader.java:226)
... 6 more
Caused by: java.lang.UnsupportedOperationException: Unsupported class version number [52.0] (maximum 51.0, Java 1.7)
at proguard.classfile.util.ClassUtil.checkVersionNumbers(ClassUtil.java:140)
at proguard.classfile.io.ProgramClassReader.visitProgramClass(ProgramClassReader.java:88)
at proguard.classfile.ProgramClass.accept(ProgramClass.java:346)
at proguard.io.ClassReader.read(ClassReader.java:91)
... 11 more
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2025,3): Error MSB6006: "java.exe" exited with code 1.

I'm afraid that there isn't any workaround for your issue with Hosted Build Agent since the user has no permission to update the installed software on Hosted Machine.
You need to deploy your own build agent and then replace the files manually.

The reason is that it uses JDK 1.7 that is incompatible. You can specify JDK version of Xamarin build step:

Related

Delphi MSBuild.exe error MSB4057 but can use IDE build project

I use Delphi XE4 on Windows7 and use Microsoft.NET/Framework/V3.5/MSBuild.exe .
I have added the MSBuild path to the environment variable.
But got this error :(
$MSBuild.exe Project3.dproj /target:Build /property:configutation=Debug
Microsoft (R) Build Engine Version 3.5.30729.5420
[Microsoft .NET Framework, Version 2.0.50727.8762]
Copyright (C) Microsoft Corporation 2007. All rights reserved.
Build started 2017/10/30 ▒W▒▒ 10:45:40.
Project "C:\DXE4_LangDLL\Project3.dproj" on node 0 (Build target(s)).
C:\DXE4_LangDLL\Project3.dproj : error MSB4057: The target "Build" does not exist in the project.
Done Building Project "C:\DXE4_LangDLL\Project3.dproj" (Build target(s)) -- FAILED.
Build FAILED.
"C:\DXE4_LangDLL\Project3.dproj" (Build target) (1) ->
C:\DXE4_LangDLL\Project3.dproj : error MSB4057: The target "Build" does not exist in the project.
0 Warning(s)
1 Error(s)
Time Elapsed 00:00:00.00
I tried use Microsoft.NET/Framework/V2.0.50727/MSBuild.exe and got the same message.
I was confuse because used Delphi IDE to build project successfully.
Can someone help me?
You have to set first the environmental variables. There is a batch file, at the path
C:\Program Files (x86)\Embarcadero\Studio\XX\rsvars.bat
that i use for command-line batch files, where XX the version of your RAD Studio.
I am not sure if it will work for Git bash as it is, but you can create a batch file that will combine the lines of rsvars.bat and the MSBuild line, and execute it
Something like:
#SET BDS=C:\Program Files (x86)\Embarcadero\Studio\XX
#SET BDSINCLUDE=C:\Program Files (x86)\Embarcadero\Studio\XX\include
#SET BDSCOMMONDIR=C:\Users\Public\Documents\Embarcadero\Studio\XX
#SET FrameworkDir=C:\Windows\Microsoft.NET\Framework\v3.5
#SET FrameworkVersion=v3.5
#SET FrameworkSDKDir=
#SET PATH=%FrameworkDir%;%FrameworkSDKDir%;C:\Program Files (x86)\Embarcadero\Studio\XX\bin;C:\Program Files (x86)\Embarcadero\Studio\XX\bin64;C:\Users\Public\Documents\Embarcadero\InterBase\redist\InterBaseXE3\IDE_spoof;%PATH%
#SET LANGDIR=EN
#SET PLATFORM=
#SET PlatformSDK=
$MSBuild.exe Project3.dproj /target:Build /property:configutation=Debug

Getting error in GGTS for create a new project for Grails

When I am trying to create a new Grails project getting the following error:
Grails: 3.0.9
Jdk: 1.8
Command terminated with an exception: java.lang.Exception (see details for partial output)
Command: C:\Program Files\Java\jdk1.8.0_65\bin\javaw.exe (11-Nov-2015 11:43:39 am)
---- System.out ----
---- System.err ----
Error: Could not find or load main class org.codehaus.groovy.grails.cli.support.GrailsStarter
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
------System.out:-----------
------System.err:-----------
Error: Could not find or load main class org.codehaus.groovy.grails.cli.support.GrailsStarter
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Please help me to get the solution for this.
Thanks
It seems you are running the project (or create) as a Java project instead of Grails project, cause it is trying to execute de Main java class

Failed to check license ilog.rules.res.xu.IlrLocalizedResourceException: error code: XU.ERROR.10700

I am trying to execute iLog jRules (Version 7.1) from Plain Java program. I am using J2SE session factory. Still I am getting below error. Can someone please enlighten ? Also what is the best and simple way to execute jRules rules from java main method ?
6/9/14 4:48 PM [SEVERE] 10700 - -.- - Failed to check license ilog.rules.res.xu.IlrLocalizedResourceException: Failed to check license, error code: XU.ERROR.10700
at ilog.rules.res.xu.util.IlrResourceExceptionHelper.createResourceException(IlrResourceExceptionHelper.java:44)
at ilog.rules.res.xu.util.IlrResourceExceptionHelper.createResourceException(IlrResourceExceptionHelper.java:78)
at ilog.rules.res.xu.spi.IlrManagedXUConnectionFactory.verifyRESLicense(IlrManagedXUConnectionFactory.java:1108)
at ilog.rules.res.xu.spi.IlrManagedXUConnectionFactory.getRulesetProvider(IlrManagedXUConnectionFactory.java:883)
at ilog.rules.res.xu.spi.IlrManagedXUConnection.getRulesetProvider(IlrManagedXUConnection.java:280)
at ilog.rules.res.xu.spi.IlrManagedXUConnection.createEngineManager(IlrManagedXUConnection.java:1659)
at ilog.rules.res.xu.spi.IlrManagedXUConnection.getEngineManager(IlrManagedXUConnection.java:1591)
at ilog.rules.res.xu.spi.IlrManagedXUConnection.getRulesetParameters(IlrManagedXUConnection.java:1508)
at ilog.rules.res.xu.cci.IlrXUConnection.getRulesetParameters(IlrXUConnection.java:499)
at ilog.rules.res.xu.cci.IlrXUInteraction.getRulesetInformation(IlrXUInteraction.java:739)
at ilog.rules.res.xu.cci.IlrXUInteraction.dispatchExecution(IlrXUInteraction.java:185)
at ilog.rules.res.xu.cci.IlrXUInteraction.execute(IlrXUInteraction.java:343)
at ilog.rules.res.xu.cci.IlrXUInteraction.execute(IlrXUInteraction.java:459)
at ilog.rules.res.xu.cci.IlrCCIClient.executeInteraction(IlrCCIClient.java:189)
at ilog.rules.res.xu.cci.IlrCCIRuleEngineClient.getRulesetArchiveProperties(IlrCCIRuleEngineClient.java:699)
at ilog.rules.res.session.util.IlrTraceHelper.<init>(IlrTraceHelper.java:111)
at ilog.rules.res.session.impl.IlrStatelessSessionBase.execute(IlrStatelessSessionBase.java:97)
at poc.PojoClientRunnerImpl.executeentpocrules(PojoClientRunnerImpl.java:88)
at poc.Main.main(Main.java:28)
Caused by: ilog.jum.client700.IluSAMAccessDeniedException: At 2014-06-09 11:18:33 GMT, SAM 3.0.0.1040: Access denied to module 'RES4J'.
If you want to inspect your access key, please do the following:
java -cp [location]sam.jar ilog.jum.client700.IluSAMAccessKey -summary
I got this issue resolved. It was because jar version mismatch. I was using jRules Studio version 7.1.1 and was executing using jRules version 7.0.0 jars .
I modified my classpath to use version 7.1.1 jars for jRules version 7.1.1 rule studio.

"Required package rtl not found" when building with Hudson

I am trying to get Hudson to work with my Delphi project. I am using the following batch file to build my project (as suggested in this blog post):
call "C:\Program Files\Embarcadero\RAD Studio\8.0\bin\rsvars.bat"
msbuild /p:Win32LibraryPath="$(BDS)\lib;$(BDS)\lib\win32\release;$(BDS)\lib\win32\debug;$(BDSUSERDIR)\Imports;$(BDS)\Imports;$(BDSCOMMONDIR)\Dcp;$(BDS)\include;" /t:build /p:config=Debug /verbosity:detailed "MyProject\src\MyProject.dproj"
if errorlevel 1 exit 1
I always end up with the error
Embarcadero Delphi for Win32 compiler version 22.0
Copyright (c) 1983,2010 Embarcadero Technologies, Inc.
Fatal: E2202 Required package 'rtl' not found
I don't understand this as rtl.dcp is in "$(BDS)\lib\win32\release" which is on the library path. I am using runtime packages by the way.
Any hints what I can do to solve this?
Edit It seems that the paths do not end up in the command line, which looks something like (after removing project-specific paths):
C:\Program Files\Embarcadero\RAD Studio\8.0\bin\dcc32.exe -$O- -$W+ --inline:off -$A4 -$R+ -$Q+ --doc --no-config -B -LUrtl;vcl;ReportingR;ComponentsR -Q -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DDEBUG;CONSTRAINT_CHECKING;_VER6;EUREKALOG_VER6;EurekaLog -V -VN -GD --drc -W-SYMBOL_DEPRECATED -W-SYMBOL_PLATFORM -W-UNIT_PLATFORM -W-UNIT_DEPRECATED Myproject.dpr
I found the answer in a comment to the original blog post. It turns out that in Delphi XE they changed the name of the Win32LibraryPath property to DelphiWin32LibraryPath. Changing the batch script accordingly fixes the issue.
The first path $(BDS)\Lib for XE,XE2 and XE 10.2 should be change for $(BDSLIB)\$(PLATFORM)\release

Configure OpenCV2.3.0 on CentOS and run jar file

I am getting the exception while running a jar file from CentOS 5.7 x86_64 command prompt. Where as it is working on CentOS 6.2 x86_64. The jar file is loading an xml file of openCV and it is producing the error like I have copied here.
Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/libjniopencv_core3672406464017531068.so: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /opt/lampp/htdocs/k_project_1/innefu/OpenCV-2.3.0/build/lib/libopencv_core.so.2.3)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1750)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1646)
at java.lang.Runtime.load0(Runtime.java:787)
at java.lang.System.load(System.java:1022)
at com.googlecode.javacpp.Loader.load(Loader.java:352)
at com.googlecode.javacpp.Loader.load(Loader.java:285)
at com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:129)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at com.googlecode.javacpp.Loader.load(Loader.java:305)
at com.googlecode.javacv.cpp.opencv_imgproc.<clinit>(opencv_imgproc.java:96)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at com.googlecode.javacpp.Loader.load(Loader.java:305)
at com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:91)
at com.innefu.faceDetect.ImgFaceDetectNew.main(ImgFaceDetectNew.java:68)
While I have configured Opencv-2.0.0 on CentOS 5.7 machine but it is producing the same error. I have also export the path of lib and bin folder of OpenCV.
OpenCv 2.3.0 is producing error while trying to configure. So, I have copied the configured OpenCV-2.3.0 from CentOS 6.2 to the CentOS 5.7. But in both the situation error is same. Please provide suggestions.
Thanks

Resources