Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Illegalacesserror:在使用ANT构建Android时尝试访问类_Java_Android_Ant - Fatal编程技术网

Java Illegalacesserror:在使用ANT构建Android时尝试访问类

Java Illegalacesserror:在使用ANT构建Android时尝试访问类,java,android,ant,Java,Android,Ant,我们正在用ANT构建android应用程序。升级到最新的SDK工具(第21版)和平台工具(第16版)以及在manifest.xml中设置android:targetSdkVersion=“17”后,我们的ant构建失败,出现IllegaAccessError 奇怪的是,一个双重蚂蚁释放成功了: 蚂蚁清理->构建成功 ant发布->构建失败 ant发布->构建成功 显然,我们真正想要做的不是: ant clean发布->构建失败 我已经用android更新项目-p重新生成了build.xm

我们正在用ANT构建android应用程序。升级到最新的SDK工具(第21版)平台工具(第16版)以及在manifest.xml中设置android:targetSdkVersion=“17”后,我们的ant构建失败,出现IllegaAccessError

奇怪的是,一个双重蚂蚁释放成功了:

  • 蚂蚁清理->构建成功
  • ant发布->构建失败
  • ant发布->构建成功
显然,我们真正想要做的不是:

  • ant clean发布->构建失败
我已经用android更新项目-p重新生成了build.xml。导致同样的结果

请参见下面的ANT输出:

release:

-pre-build:

-code-gen:
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.
     [echo] Handling aidl files...
     [aidl] No AIDL files to compile.
     [echo] ----------
     [echo] Handling RenderScript files...
[renderscript] No RenderScript files to compile.
     [echo] ----------
     [echo] Handling Resources...
     [aapt] Generating resource IDs...

BUILD FAILED
/home/me/android-sdks/tools/ant/build.xml:645: The following error occurred while executing this line:
/home/me/android-sdks/tools/ant/build.xml:683: java.lang.IllegalAccessError: tried to access class com.google.common.base.Platform from class com.google.common.base.CharMatcher
    at com.google.common.base.CharMatcher.precomputed(CharMatcher.java:684)
    at com.google.common.base.CharMatcher.<clinit>(CharMatcher.java:63)
    at com.google.common.base.Splitter.on(Splitter.java:129)
    at com.android.sdklib.internal.build.SymbolWriter.write(SymbolWriter.java:51)
    at com.android.ant.AaptExecTask.execute(AaptExecTask.java:711)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
    at com.android.ant.IfElseTask.execute(IfElseTask.java:120)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:390)
    at org.apache.tools.ant.Target.performTasks(Target.java:411)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
    at org.apache.tools.ant.Main.runBuild(Main.java:809)
    at org.apache.tools.ant.Main.startAnt(Main.java:217)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

Total time: 2 seconds
发布:
-预构建:
-代码生成:
[mergemanifest]将AndroidManifest文件合并为一个文件。
[mergemanifest]已禁用清单合并。仅使用项目清单。
[echo]正在处理aidl文件。。。
[aidl]没有要编译的aidl文件。
[回声]----------
[echo]正在处理RenderScript文件。。。
[renderscript]没有要编译的renderscript文件。
[回声]----------
[echo]正在处理资源。。。
[aapt]正在生成资源ID。。。
构建失败
/home/me/android sdks/tools/ant/build.xml:645:执行此行时发生以下错误:
/home/me/android-sdks/tools/ant/build.xml:683:java.lang.IllegalAccessError:试图从class com.google.common.base.Platform访问class com.google.common.base.CharMatcher
位于com.google.common.base.CharMatcher.precomputed(CharMatcher.java:684)
位于com.google.common.base.CharMatcher(CharMatcher.java:63)
位于com.google.common.base.Splitter.on(Splitter.java:129)
位于com.android.sdklib.internal.build.SymbolWriter.write(SymbolWriter.java:51)
位于com.android.ant.AaptExecTask.execute(AaptExecTask.java:711)
位于org.apache.tools.ant.UnknowneElement.execute(unknowneElement.java:291)
位于sun.reflect.GeneratedMethodAccessor4.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:616)
位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
位于org.apache.tools.ant.Task.perform(Task.java:348)
位于org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
位于com.android.ant.IfElseTask.execute(IfElseTask.java:120)
位于org.apache.tools.ant.UnknowneElement.execute(unknowneElement.java:291)
位于sun.reflect.GeneratedMethodAccessor4.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:616)
位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
位于org.apache.tools.ant.Task.perform(Task.java:348)
位于org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
位于org.apache.tools.ant.UnknowneElement.execute(unknowneElement.java:291)
位于sun.reflect.GeneratedMethodAccessor4.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:616)
位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
位于org.apache.tools.ant.Task.perform(Task.java:348)
位于org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398)
位于org.apache.tools.ant.UnknowneElement.execute(unknowneElement.java:291)
位于sun.reflect.GeneratedMethodAccessor4.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:616)
位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
位于org.apache.tools.ant.Task.perform(Task.java:348)
位于org.apache.tools.ant.Target.execute(Target.java:390)
位于org.apache.tools.ant.Target.performTasks(Target.java:411)
位于org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
位于org.apache.tools.ant.Project.executeTarget(Project.java:1368)
位于org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
位于org.apache.tools.ant.Project.executeTargets(Project.java:1251)
位于org.apache.tools.ant.Main.runBuild(Main.java:809)
位于org.apache.tools.ant.Main.startAnt(Main.java:217)
位于org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
位于org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
总时间:2秒

来自多雪的中欧的许多感谢和亲切的问候

也许这会在遇到这个错误时有所帮助:

我也有同样的问题,原因是Ant的类路径中有重复的JAR。在我的例子中,checkstyle-5.6-all.jar被添加到包含上述类的ANT_HOME\lib文件夹中,这导致了一些错误,因为它们之间存在重复的类和访问


在这种情况下,我建议为使用此库的Ant目标添加一个本地类路径变量,并尽可能保持Ant_HOME\lib的干净。

我遇到了同样的问题,并且在数小时后解决了它。 只需使用最新的ANT(但不要使用Jenkins附带的ANT)
apache-ant-1.8.4似乎存在一些问题
但是在下载了最新的apache-ant-1.9.1之后,ant成功地构建了带有library项目的项目

使用ant build处理库项目的系统配置:

>ANT: 1.9.1
>Android SDK - 22 rev
>java 1.6.0_38

我发现像android-support-v7-appcompat这样的依赖库项目导致了这个问题。你确定更新Ant解决了你的问题吗?我更新到“ApacheAnt(TM)版本1.9.2,于2013年7月14日编译”,但我仍然有同样的问题。问题不仅仅在于
Ant_HOME/lib
。在我的例子中是
${user.home}/