I need some help here. It´s related with Blackberry WebWorks plataform.
I´m running Ripple chrome extension for my dynamic web project. I´ve make the steps showed here:
https://developer.blackberry.com/html5/documentation/packaging_your_app_in_ripple_1904611_11.html
but I get this error when building the app from 'Package & Sign' button in the Chrome extension.
If you want any extra information let me know.
Thank you!
out: [INFO]
out: Compiling BlackBerry WebWorks application
out: Exported static routine: .main(String[]) is multiply defined.
out: Exported static routine: .main(String[]) is multiply defined.
out: Exported static routine: .main(String[]) is multiply defined.
out: Exported static routine: .main(String[]) is multiply defined.
out: Exported static routine: .main(String[]) is multiply defined.
out: Exported static routine: .main(String[]) is multiply defined.
out: Exported static routine: .main(String[]) is multiply defined.
out: C:\Program Files\Research In Motion\BlackBerry WebWorks SDK 2.3.1.5\lib\net
_rim_api.jar(net_rim_jaxrpc.cod): Error!: Duplicate definition for 'javax.xml.rp
c.JAXRPCException' found in: JAXRPCException.java
out: [ERROR]
out: RAPC exception occurred
Done build
This is usually the result of building with the -s flag (which produces the Java source for the app) and then having this source contained in your zip. The source files are what provide the duplicate java files.
Ripple automatically zips the entire directory of your web app, so please clean the directory of any extra files and try again.
A couple things to check.
Make sure you're using JDK 1.6
You must be using the 32-Bit version.
Related
Hello everyone;
i had opencv 2.2 on my vs2010, and i wanted to update so i went to opencv site and:
i've downloaded OpenCV for Windows (ver 2.4.6)
i've extracted it to c:\opencv2.4
i've set the Environment Variable as doc said here: http://docs.opencv.org/doc/tutorials/introduction/windows_install/windows_install.html#windowssetpathandenviromentvariable
( i didnt know what is "PATH EDITOR" so i've just changed Environment variables)
i made property sprite sheets as opencv doc said here: http://docs.opencv.org/doc/tutorials/introduction/windows_visual_studio_Opencv/windows_visual_studio_Opencv.html#windows-visual-studio-how-to
5.but Doc Was Old, and there was no "include" folder in OpenCV2.4/opencv/build/x64/vc10 so I did set include Directory to OpenCV2.4/opencv/build/include in My property sprite sheet.
everything seems true and VS detect include libraries But
VS2010 throw following error when i want to Build the solution:
1>LINK : fatal error LNK1104: cannot open file 'opencv_core231d.lib'
Strange thing is there is no "opencv_core231d.lib" File in c:\opencv2.4 at all!!!
:(
what is the problem?
This is a Linker error, so make sure you are trying to link the correct libraries.
I would suggest to use CMake, which definitely simplifies configuring projects, specially those having dependencies like OpenCV (you can take a look to the OpenCV documentation, or any blog explaining the steps: http://marcosnietoblog.wordpress.com/2011/11/19/opencv-for-windows-easy-installation-using-cmake/ )
By the way, I use to have several versions of opencv on the same folder:
C:\OpenCV\opencv2.4.3
C:\OpenCV\opencv2.4.6
...
So I can easily switch within CMake setting the OpenCV_DIR.
opencv_core231d.lib is a debug version, all the *d.lib and *d.dll files in openCV are with debug symbols.
It is likely that the pre-built release you downloaded doesn't contain debug ones.
either download te source and build both debug and release. Or, if you don't care how opencv works internally, just change the linker flags to use the same lib names with the d
edit. or of course if you donwloaded opencv 2.4.6 the file would be opencv_core246d.lib
I have also asked this question on the BlackBerry support forums, under the thread "NoClassDefFoundError while preverify the jar files in BlackBerry"
I am adding a library files(jar files) in my BlackBerry Project and and try to run it. But it is giving me the below error : Error!: Missing stack map at label 77. So i try to find out the issue and find this link: Preverify Link
So i tried to fix this issue using preverifier. As i am using BlackBerry eclipse plugin, i have tried in this way:
Copy the jar file in the bin folder of my eclipse 6.0 plugins (eclipse-SDK-3.5.2-win32\eclipse\plugins\net.rim.ejde.componentpack6.0.0_6.0.0.29\components\bin)
Execute the following command in the command line:
preverify -classpath "<path to 6.0.0.29 SDK>\net_rim_api.jar" "ArcotOTP-Lib-Java-Test-2.0.0.jar"
But after running this line, i am getting the below error:
Error preverifying class Mypackage.API$1
java/lang/NoClassDefFoundError: Mypackage/Test
BlackBerry devices are running on the Java-ME platform, so you can't use modern java features. Typical Java jar files these days use newer features that are not backward compatible with the Java-ME platform. Some projects do go out of the way to be backward compatible, like Bouncy Castle. But that is rare.
This question, duplicated on the BlackBerry forums, was also answered on the BlackBerry forums, which I will capture here:
simon_hain:
and is it a j2me library?
Arindam Mukherjee:
No it is java library..all classes are basically java classes. The same library i am using for android also and it is working fine fro me..
simon_hain:
BlackBerry uses J2ME as a base, Android uses J2SE.
You cannot use an Android library on BlackBerry unless you re-compile it (and resolve all the errors due to missing reflection, lists etc)
I've implemented a blackberry application using JRE5.0, it's running well on any device with OS5.0 and OS6.0
When I try to open the same application on 9900 which has OS 7.0, I got the following error:
Error Starting myAppName: Module 'MyAppName-4' has verification error
3337. (Codfile version 78)
where myAppName is the application name (name of the cod file)
as in the following image:
I checked the event logger, here what it contains (older to newer):
a System - VM:LINK MyAppName
a System - VM:VECPs=my.Package.Name.Containing.Screens
a System - VM:VECCs=oneOfMyScreenClassNames
a System - VM:VECMm=functionInOneOfMyClasses()
Module 'MyAppName-4' has verification error 3337 (codfile version 78)
Linker error: 'VerifyError' for MyAppName
Error starting myAppName: Module 'MyAppName-4' has verification error 3337 (codfile version 78)
Here is the content:
E System - JVM:INFOp=2100000a,a='7.0.0.296',o='4.0.0.127',h=7001204
For those who are interested, I found the solution.
In the logs there were:
a System - VM:VECCs=oneOfMyScreenClassNames
a System - VM:VECMm=functionInOneOfMyClasses()
I did the next steps in the whole class "oneOfMyScreenClassNames" indicated in logs
Here are the steps:
If you started by building a Java Archive (JAR) file and then used the RIM Application Program Compiler (RAPC) to create .cod files, make sure you turn obfuscation off when building the JAR file. The RAPC compiler performs its own obfuscation and issues may occur if the code is already obfuscated.
Remove any System.out.* calls. These generally do nothing on the BlackBerry smartphone, but they might cause verification errors.
Remove unused import statements.
Explicitly specify the access for each function or variable. For example, make sure each one is specified as public, private, or protected.
If you are working with a MIDlet, make sure the MIDlet class is declared as public.
Verification errors may occur if the COD file is corrupted or if it was not signed correctly. Make sure that you perform a clean rebuild and that you re-sign your application. Reinstall the application on the BlackBerry smartphone.
Comment out any non-executable code. Verification errors might be related to the size of the main code file and the library files. If you comment out non-executable code, the file sizes change, which may correct the problem.
If you have created any classes that inherit from RIM classes, change the name of any custom methods and members that you created in those classes. This makes sure that you have not named any methods or members of the same name in the internal RIM classes.
If your application is using BlackBerry® Device Software 3.8 or later, verification errors occur when an application that implements the javax.microedition.rms.RecordStore class is compiled using BlackBerry® Java® Development Environment (BlackBerry JDE) earlier than version 4.0. This occurs if the application uses either the addRecordListener or removeRecordListener methods of the RecordStore class. To resolve this issue, recompile the application using BlackBerry JDE 4.0 or later.
There is a problem with how the BlackBerry® Java® Virtual Machine (BlackBerry JVM) handles the referencing of a class directly within the constructor of another class. The following is an example:
Class1 class1= new Class1(Class2.class.getName()); To work around this issue, do not make the class call within a constructor
Remove references to a static instance variable from an inner class. There are a few ways you can remove these references, such as creating get/set methods for var in the outer class or modifying the logic to pull MyInnerClass out of MyOuterClass.
The build procedure normally compiles from the java source file with the javac command, and then runs preverify.exe file and then RAPC. Add the following command line arguments to javac to help avoid issues in earlier versions of the RAPC:
javac.exe -source 1.3 -target 1.1
Some methods that are very long can cause verification errors. By breaking these methods into helper methods, you can reduce the likelihood of verification errors.
Although not as likely, some very long method definitions (with 10 or more parameters), and some very long constant definitions (long package structure and/or long names) can also cause verification errors.
Source: http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/832062/Support_-_Preventing_verification_errors.html?nodeid=1499031&vernum=0
PS, I also removed "instanceOf" usage in code
I've to de-compile iOS .app file and then insert my code and then re-package back to ipa file.
Can you please suggest some pointers how to do it?
You simply can't do this.
Once the app is compiled down to machine code, the best you can get from reverse engineering it is just assembly and unless you are willing to write your fix in assembly I don't see how you are going to integrate your code.
Also the code signing will be corrupted by doing this as well.
Unless you have valid provisioning set up on your machine you can't repackage the app with the original code signing.
Try to get the source or similar source to write an app with the functionality you need.
Yes you can if the device is jailbroken and the signature check is removed.
Here there is one case:
Is it possible to edit and recompile an iOS Binary?
In the reply they suggest that the modifications have been taken directly on the binary (by replacing some functions with other of the same size). However, I believe that you can do more advanced things.
You could, for instance, include the assembly of the application into your own objective-c code using XCode:
Compiling Assembly (.S) file alongside iPhone project
Or directly compile the modified assembly into the binary (mach-o) and then repackage.
How to create an iPhone mach-o file?
Maybe GNU ARM or LLVM toolchain can assit you on doing this: Compile, Assemble and Disassemble Using the LLVM Tool Chain
There are just some approaches which I'm currently investigating on. It is not straightforward, so any other know-how on the topic will be very appreciated.
I am trying to preverify "signpost-commonshttp4-1.2.1.1.jar" file to use it in BlackBerry project
Here is the command im trying. Since it also needs "signpost-core-1.2.1.1.jar" to classpath which is already preverified.
C:\Eclipse_bb\plugins\net.rim.ejde.componentpack5.0.0_5.0.0.25\components\bin>
preverify.exe -classpath
"C:\Eclipse_bb\plugins\net.rim.ejde.componentpack5.0.0_5.
0.0.25\components\lib\net_rim_api.jar;C:\Program Files\Java\jdk1.6.0_25\jre\lib\
rt.jar;C:\Eclipse_bb\plugins\net.rim.ejde.componentpack5.0.0_5.0.0.25\components
\bin\output\signpost-core-1.2.1.1.jar"
signpost-commonshttp4-1.2.1.1.jar
Here i have added classpath of net_rim_api.jar, rt.jar & signpost-core-1.2.1.1.jar
It throws below Error
Error preverifying class
oauth.signpost.commonshttp.CommonsHttpOAuthConsumer
VERIFIER ERROR oauth/signpost/commonshttp/CommonsHttpOAuthConsumer.wrap(Ljava/lang/Object;)Loauth/signpost/http/HttpRequest;:
Illegal type in constant pool
If you mean signpost, with source code hosted on github by kaeppler, then it appears to be a Java-SE library. BlackBerry is a Java-ME device, so you will need to find a Java-ME compliant library. The preverifier errors you are seeing are the first indication that the Java-SE code won't work on BlackBerry.