我正面临" java.lang.IllegalAccessError:预验证类中的类参考..."通过命令提示符运行UIAutomator测试时。
我创建了一个uiautomator 测试项目,并将外部apache-commons-lang.jar添加到测试项目/ libs 文件夹中。
我在编译和 dex 目标下覆盖了该位置
%ANDROID_HOME%\工具\蚂蚁\ uibuild.xml
使用外部库编译源测试代码,并且它成功地能够创建.dex文件和.jar文件。
<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>
但是在使用命令
通过 adb 推送jar文件之后adb push test-project.jar / data / local / tmp /
并运行命令
adb shell uiautomator runtest /data/local/tmp/test-project.jar -c 包name.TestClass
结果低于错误。
INSTRUMENTATION_RESULT:shortMsg = java.lang.IllegalAccessError INSTRUMENTATION_RESULT:longMsg =预验证类中的类ref 解决了意外的实现INSTRUMENTATION_CODE:0
高级感谢您解决此问题的任何帮助。