Trouble Installing Teensyduino

Status
Not open for further replies.

lineage

Member
Hello,

I updated Arduino to Version 1.6.1 and now I Can't Reinstall Teensyduino (Version 1.21-beta 10).

If I Select the Arduino folder the Next Button stays Disabled.

I am using Windows 7.

Help says this:

java: "lib/pde.jar" object: "processing/app/Base.class" wrong size, unsupported Arduino version
Does not match Arduino 1.6.1

Is there maybe a newer Version of Teensyduino that I missed?

Thanks,
lineage
 
This was posted in the core thread and the ZIP libraries work, versus the installer version. They have the expected version of Arduino.exe. Paul has seen this and is working on a fix. If you get the ZIP and overwrite that file(s) you should be good to go.
 
Yup, the Arduino devs built their code using 2 different versions of Java. Not nice. Or just sloppy.

I'll be working on a way to automatically detect either this afternoon.....

I already have similar handling for the 2 java versions used on Macintosh, but things are a little different on Windows.
 
Paul,

I think I must be missing something. I am having the same problem (java: "lib/pde.jar" object: "processing/app/Base.class" wrong size, unsupported Arduino version). In my case I am on Linux, and I am installing arduino by cloning git@github.com:arduino/Arduino.git, checking out tag 1.6.3, changing into the build directory and running ant. In this case I suppose I am compiling the sources and producing pde.jar with whatever version of javac I have locally (I tried both 1.7.0_76-b13 and 1.8.0_31-b13). So I don't expect the size and checksum of the pde.jar would be identical to one produced by some arbitrary version of the jdk even if from the same sources. This means I can't install it from git? How am I supposed to install arduino so that teensyduino's requirements are met?

Details:
Teensyduino installer 1.23 Linux 64-bit help window output:
Directory: /home/joey/git/arduino/build/linux/work/
Checking Arduino 1.0.6:
dir: "hardware" present
dir: "lib" present
dir: "reference" present
file: "lib/core.jar" missing
Does not match Arduino 1.0.6
Checking Arduino 1.6.1:
file: "arduino" present
file: "lib/jssc-2.8.0.jar" present
file: "hardware/arduino/avr/boards.txt" present
file: "hardware/arduino/avr/platform.txt" present
dir: "hardware/arduino/avr/cores/arduino" present
file: "hardware/arduino/sam/boards.txt" missing
Does not match Arduino 1.6.1
Checking Arduino 1.6.3:
file: "arduino" present
file: "lib/jssc-2.8.0.jar" present
file: "lib/version.txt" present
java: "lib/pde.jar" object: "processing/app/Base.class" wrong size, unsupported Arduino version
Does not match Arduino 1.6.3
Checking Arduino 1.6.4:
file: "arduino" present
file: "lib/jssc-2.8.0.jar" present
file: "lib/version.txt" present
java: "lib/pde.jar" object: "processing/app/Base.class" wrong size, unsupported Arduino version
Does not match Arduino 1.6.4

Arduino workspace created with:
joey@akita ~/git/Arduino.git $ git remote -v
origin git@github.com:arduino/Arduino.git (fetch)
origin git@github.com:arduino/Arduino.git (push)
joey@akita ~/git/Arduino.git $ cd ..
joey@akita ~/git $ rm -rf arduino
joey@akita ~/git $ git clone Arduino.git arduino
Clonage dans 'arduino'...
fait.
joey@akita ~/git $ cd arduino
joey@akita ~/git/arduino $ git checkout 1.6.3
Note: checking out '1.6.3'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

git checkout -b new_branch_name

HEAD est maintenant sur 9d2034a... Update revisions.txt
joey@akita ~/git/arduino $ cd build/
joey@akita ~/git/arduino/build $ java -version
java version "1.7.0_76"
Java(TM) SE Runtime Environment (build 1.7.0_76-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.76-b04, mixed mode)
joey@akita ~/git/arduino/build $ ant
[snip]
BUILD SUCCESSFUL
Total time: 2 minutes 4 seconds
joey@akita ~/git/arduino/build $
 
Last edited:
This means I can't install it from git? How am I supposed to install arduino so that teensyduino's requirements are met?

If you *really* want to use Teensyduino with an Arduino IDE built from source, you have a couple options.

First, run the installer on a stock copy of Arduino. That will give you all the files in hardware/teensy and hardware/tools and examples/ (if you care about the minor edits to examples).

Then you just need to worry about lib/pde.jar and lib/arduino-core.jar. Presumably you're building the IDE from source because you have some modifications to the code you want? You can get the modified source Teensyduino uses on github. Here's the source for 1.6.3. The others are on my github account too, so I'm sure you can find them with little effort.

You can look at the git commit log, or use any standard tool like "diff" (against an unmodified copy) to get all changes. You could try merging all my changes into your copy, or all yours into mine. My copies have build.xml hacked to only compile the jar files, so if you merge into mine and want full build, first replace my hacked copy of build.xml.

Once you've rebuild the IDE, you could copy those files from hardware/teensy and hardware/tools into the freshly compiled copy. Or you could copy pde.jar and arduino-core.jar. Or you could replace those jar files with symbolic links to the copies in the source tree. That's what I do to speed up development.

Of course, if you're not modifying the Arduino source, things are much easier because you won't need to merge 2 sets of changes. But then, you could just use the already-built copies.

If you are careful to compile with exactly the same JDK, you can end up with jar files that have identical data (all .class files a perfect binary match). But the overall zip file will still differ, due to metadata. To compare compiled code, you have to unzip each jar file and then use a recursive file compare.

For version 1.6.3, Arduino LLC used JDK version 1.6.0_34-b34 (a.k.a. "6u34") to build the Linux 64 bit release. Of course, I carefully match JDK versions when I build the source. If you try Arduino 1.6.4 or the just-release 1.6.5, use JDK 6u35 for Linux 64 bit.
 
joey@akita ~/git/arduino/build $ java -version
java version "1.7.0_76"
Java(TM) SE Runtime Environment (build 1.7.0_76-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.76-b04, mixed mode)

That's version 7u76.

It'll definitely produce different java bytecode output than the 6u34 both Arduino and I used to build our binary copies.
 
Status
Not open for further replies.
Back
Top