Running UIAutomator tests with external libs giving uiautomator java.lang.IllegalAccessError: Class ref in pre-verified class

10 views
Skip to first unread message

Somnath Singh

unread,
Jun 19, 2015, 12:28:52 PM6/19/15
to android-...@googlegroups.com
I am facing "java.lang.IllegalAccessError: Class ref in pre-verified class... " while running the UIAutomator tests through command prompt .

I created a uiautomator test project and added external apache-commons-lang.jar to the test project/libs folder .

I have the overwritten below compile and dex target which is available at the location

%ANDROID_HOME%\tools\ant\uibuild.xml


to compile the source test code with external libs and it successfully able to create the .dex file and the .jar file .

<property name="jar.libs.dir" value="libs />
<property name="jar.libs.absolute.dir" location="${jar.libs.dir}" />
<path id="classpath">
    <fileset dir="${jar.libs.absolute.dir}">
        <include name="uiautomator.jar" />
        <include name="commons-lang-2.0.jar" />
    </fileset>
</path>


<target name="compile" depends="-build-setup, -pre-compile">
    <echo message="In the compilation****"/>
    <javac encoding="${java.encoding}" source="${java.source}"
        target="${java.target}" debug="true" extdirs="" includeantruntime="false"
        destdir="${out.classes.absolute.dir}" bootclasspathref="project.target.class.path"
        verbose="${verbose}" fork="${need.javac.fork}">
        <src path="${source.absolute.dir}" />
        <classpath refid="classpath" />
        <compilerarg line="${java.compilerargs}" />
    </javac>
</target>

<target name="-dex" depends="compile, -post-compile">
    <dex executable="${dx}" output="${intermediate.dex.file}"
        nolocals="@{nolocals}" verbose="${verbose}">
        <fileset dir="${jar.libs.absolute.dir}">
            <include name="*.jar" />
        </fileset>
        <path path="${out.classes.absolute.dir}" />
    </dex>
</target>

But after pushing the jar file through adb using the command

adb push test-project.jar /data/local/tmp/
and running the command

adb shell uiautomator runtest /data/local/tmp/test-project.jar -c package-name.TestClass

results below error.

INSTRUMENTATION_RESULT: shortMsg=java.lang.IllegalAccessError
INSTRUMENTATION_RESULT: longMsg=Class ref in pre-verified class resolved to unexpected implementation INSTRUMENTATION_CODE: 0

Advanced thanks for having any help to resolve this .
Reply all
Reply to author
Forward
0 new messages