Packaged version of UIAutomatorViewer is broken

Bug #1438629 reported by Romain Vimont
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
androidsdk-tools (Ubuntu)
New
Undecided
Unassigned
eclipse (Ubuntu)
New
Undecided
Unassigned

Bug Description

On a fresh Ubuntu 14.04.2 LTS, android-uiautomatorviewer just does not work.

Install android-uiautomatorviewer and execute uiautomatorviewer:
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jface/window/ApplicationWindow
 at java.lang.ClassLoader.defineClass1(Native Method)
 at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
 at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
 at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
 at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
 at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:412)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
 at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jface.window.ApplicationWindow
 at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
 at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
 ... 14 more

The problem is that the wrapper script pass /usr/share/java as parameter for -Djava.ext.dirs, while uiautomatorviewer also depends on eclipse-rcp jars installed in /usr/lib/eclipse/plugins.

The patch attached fixes the problem.

EDIT: but a better fix is https://bugs.launchpad.net/ubuntu/+source/androidsdk-tools/+bug/1438629/comments/3

Tags: patch
Revision history for this message
Romain Vimont (rom+ubuntu) wrote :
description: updated
summary: - Packaged UIAutomatorViewer is broken
+ Packaged version of UIAutomatorViewer is broken
Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "Patch fixing uiautomatorviewer" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]

tags: added: patch
Revision history for this message
Romain Vimont (rom+ubuntu) wrote :

In fact, androidsdk-uiautomatorviewer works fine in Debian Sid, without modifying the script.

Instead, the package adds symlinks into /usr/share/java:
$ dpkg-deb -c eclipse-rcp_3.8.1-7_amd64.deb | grep ^l
lrwxrwxrwx root/root 0 2014-11-28 21:07 ./usr/lib/eclipse/features/org.eclipse.rcp_3.8.1.dist-8LA2GODFTJUDJ21934/eclipse_update_120.jpg -> ../../../../share/eclipse/features/org.eclipse.rcp_3.8.1.dist-8LA2GODFTJUDJ21934/eclipse_update_120.jpg
lrwxrwxrwx root/root 0 2014-11-28 21:07 ./usr/lib/eclipse/plugins/org.apache.felix.gogo.runtime_0.10.0.jar -> ../../../share/java/org.apache.felix.gogo.runtime.jar
lrwxrwxrwx root/root 0 2014-11-28 21:07 ./usr/lib/eclipse/plugins/com.ibm.icu_4.4.2.v20110823.jar -> ../../../share/java/com.ibm.icu-4.4.jar
lrwxrwxrwx root/root 0 2014-11-28 21:07 ./usr/lib/eclipse/plugins/org.apache.felix.gogo.shell_0.10.0.jar -> ../../../share/java/org.apache.felix.gogo.shell.jar
lrwxrwxrwx root/root 0 2014-11-28 21:07 ./usr/lib/eclipse/plugins/org.eclipse.swt_3.8.2.jar -> ../../../share/java/swt.jar
lrwxrwxrwx root/root 0 2014-11-28 21:07 ./usr/lib/eclipse/plugins/org.apache.felix.gogo.command_0.12.0.jar -> ../../../share/java/org.apache.felix.gogo.command.jar
lrwxrwxrwx root/root 0 2014-11-28 21:07 ./usr/share/java/org.eclipse.jface_3.8.0.dist.jar -> ../../lib/eclipse/plugins/org.eclipse.jface_3.8.0.dist.jar
lrwxrwxrwx root/root 0 2014-11-28 21:07 ./usr/share/java/org.eclipse.core.commands.jar -> org.eclipse.core.commands_3.6.1.dist.jar
lrwxrwxrwx root/root 0 2014-11-28 21:07 ./usr/share/java/org.eclipse.jface.jar -> org.eclipse.jface_3.8.0.dist.jar
lrwxrwxrwx root/root 0 2014-11-28 21:07 ./usr/share/java/org.eclipse.equinox.common.jar -> org.eclipse.equinox.common_3.6.100.dist.jar
lrwxrwxrwx root/root 0 2014-11-28 21:07 ./usr/share/java/org.eclipse.equinox.common_3.6.100.dist.jar -> ../../lib/eclipse/plugins/org.eclipse.equinox.common_3.6.100.dist.jar
lrwxrwxrwx root/root 0 2014-11-28 21:07 ./usr/share/java/org.eclipse.core.commands_3.6.1.dist.jar -> ../../lib/eclipse/plugins/org.eclipse.core.commands_3.6.1.dist.jar

These two symlinks seem sufficient to fix uiautomatorviewer:
sudo ln -s ../../lib/eclipse/plugins/org.eclipse.jface_3.8.0.dist.jar /usr/share/java
sudo ln -s ../../lib/eclipse/plugins/org.eclipse.core.commands_3.6.1.dist.jar /usr/share/java

Therefore, please ignore the patch but add the symlinks instead ;-)

description: updated
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.