Android项目使用Ant编译不能编译,非法字符错误 [英] Android Project Compiled with Ant doesn't compile, Illegal Character Error
问题描述
我使用Ant来编译,我已经建立了一个Android应用程序。这听起来很奇怪,可能不会有所作为,但我用了Android SDK建立一个新的项目,然后我用.NET以编程方式修改项目中的情侣档,因此将建立我想要的方式。
我已加载项目到Eclipse中,它似乎正确地编译,但是当我通过ANT运行它,它不能正确编译。错误似乎是说,我有一个?在项目中的一个活动。我已确认多次,绝对没有'?在该文件。
错误:
[javac的] C:\\ IBE_temp \\ _RTS \\ ANTTest \\ $ SimpleTest的\\凸出的\\ src \\ COM \\ infosol \\ SimpleTest的\\ MyActivity.java:1:非法字符:\\ 65279
[javac的]包com.infosol.SimpleTest?;
[javac的] ^
[javac的] 1个错误
如果任何人有什么我做错了的想法,我真的AP preciate它。不知道什么会有所帮助,但低于来自ANT的输出结果。
命令行:
C:\\ IBE_temp \\ java的\\ BIN \\ java中-Dant.home =C:\\ IBE_temp \\包装\\ ANTSDK-classpathC:\\ IBE_temp \\包装\\ ANTSDK \\ LIB \\蚂蚁launcher.jar组织。 apache.tools.ant.launch.Launcher发布-v
部分ANT结果:
编译:
属性tested.project.absolute.dir尚未设置
属性tested.project.absolute.dir尚未设置
[javac的] C:\\ IBE_temp \\包装\\ AndroidSDK \\工具\\蚂蚁\\ main_rules.xml:384:警告:includeantruntime没有设置,默认为build.sysclasspath = L
AST;设置为false可重复的构建
[javac的]玉米\\ infosol \\ SimpleTest的\\ MyActivity.java加入作为COM \\ infosol \\ SimpleTest的\\ MyActivity.class不存在。
[javac的] COM \\ infosol \\ SimpleTest的\\ R.java添加为COM \\ infosol \\ SimpleTest的\\ R.class不存在。
[javac的] 2编译源文件到C:\\ IBE_temp \\ _RTS \\ ANTTest \\ $ SimpleTest的\\凸出\\ BIN \\班
[javac的]运用现代编译
[javac的]编译参数:
[javac的]'-D'
[javac的]'C:\\ IBE_temp \\ _RTS \\ ANTTest \\ $ SimpleTest的\\凸出\\ BIN \\班
[javac的]-classpath
[javac的] 'C:\\IBE_temp\\_RTS\\ANTTest\\$SimpleTest\\proj\\bin\\classes;C:\\IBE_temp\\_RTS\\ANTTest\\$SimpleTest\\proj;C:\\IBE_temp\\_RTS\\ANTTest\\$SimpleTest\\proj
\\libs\\airbootstap.jar;C:\\IBE_temp\\_RTS\\ANTTest\\$SimpleTest\\proj\\libs\\xcelsiusLoad.jar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant-launcher.jar;C:\\IBE_temp\\Pac
kager\\ANTSDK\\lib\\ant-antlr.jar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant-apache-bcel.jar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant-apache-bsf.jar;C:\\IBE_temp\\Pack
ager\\ANTSDK\\lib\\ant-apache-log4j.jar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant-apache-oro.jar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant-apache-regexp.jar;C:\\IBE_t
emp\\Packager\\ANTSDK\\lib\\ant-apache-resolver.jar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant-apache-xalan2.jar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant-commons-logg
ing.jar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant-commons-net.jar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant-jai.jar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant-javamail.j
ar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant-jdepend.jar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant-jmf.jar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant-jsch.jar;C:\\IBE_tem
p\\Packager\\ANTSDK\\lib\\ant-junit.jar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant-junit4.jar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant-netrexx.jar;C:\\IBE_temp\\Package
r\\ANTSDK\\lib\\ant-swing.jar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant-testutil.jar;C:\\IBE_temp\\Packager\\ANTSDK\\lib\\ant.jar;C:\\IBE_temp\\java\\lib\\tools.jar'
[javac的]'-sourcepath
[javac的]'C:\\ IBE_temp \\ _RTS \\ ANTTest \\ $ SimpleTest的\\凸出的\\ src; C:\\ IBE_temp \\ _RTS \\ ANTTest \\ $ SimpleTest的\\凸出\\根
[javac的]'-target'
[javac的]'1.5'
[javac的]-bootclasspath
[javac的]'C:\\ IBE_temp \\包装\\ AndroidSDK \\ \\平台Android的8 \\的android.jar
[javac的]''-encoding
[javac的]UTF-8
[javac的]-g
[javac的]-source
[javac的]'1.5'
[javac的]
[javac的]各地的可执行文件和参数的'字符
[javac的]不是命令的一部分。
被编译为[javac]文件:
[javac的] C:\\ IBE_temp \\ _RTS \\ ANTTest \\ $ SimpleTest的\\凸出的\\ src \\ COM \\ infosol \\ SimpleTest的\\ MyActivity.java
[javac的] C:\\ IBE_temp \\ _RTS \\ ANTTest \\ $ SimpleTest的\\凸出\\根\\ COM \\ infosol \\ SimpleTest的\\ R.java
[javac的] C:\\ IBE_temp \\ _RTS \\ ANTTest \\ $ SimpleTest的\\凸出的\\ src \\ COM \\ infosol \\ SimpleTest的\\ MyActivity.java:1:非法字符:\\ 65279
[javac的]包com.infosol.SimpleTest?;
[javac的] ^
[javac的] 1个错误构建失败
C:\\ IBE_temp \\包装\\ AndroidSDK \\工具\\蚂蚁\\ main_rules.xml:384:编译失败;详情请参见编译器错误输出。
在org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1150)
在org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:912)
在org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
在sun.reflect.GeneratedMethodAccessor4.invoke(来源不明)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
在java.lang.reflect.Method.invoke(Method.java:597)
在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.UnknownElement.execute(UnknownElement.java:291)
在sun.reflect.GeneratedMethodAccessor4.invoke(来源不明)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
在java.lang.reflect.Method.invoke(Method.java:597)
在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)总时间:1秒
我想你都面临这个错误:<一href=\"http://bugs.sun.com/view_bug.do?bug_id=4508058\">http://bugs.sun.com/view_bug.do?bug_id=4508058
试着改变你的文件编码为UTF-8无BOM(见<一href=\"http://stackoverflow.com/questions/295472/how-do-i-remove-the-bom-character-from-my-xml-file/3202807#3202807\">this).
I am using ANT to compile an Android app that I have built. It sounds weird and probably doesn't make a difference, but I used the Android SDK to build a new project and then I used .NET to programatically modify a couple files within the project so it would build the way I wanted.
I have loaded the project into Eclipse, and it appears to compile properly, but when I run it through ANT, it doesn't compile properly. The error seems to say that I have a '?' in the one activity in the project. I have confirmed multiple times, there is definitely no '?' in the file.
Error:
[javac] C:\IBE_temp\_RTS\ANTTest\$SimpleTest\proj\src\com\infosol\SimpleTest\MyActivity.java:1: illegal character: \65279
[javac] ?package com.infosol.SimpleTest;
[javac] ^
[javac] 1 error
If any one has thoughts on what I am doing wrong, I would really appreciate it. Not sure what will be helpful, but below are the results from the ANT output.
The command line:
C:\IBE_temp\java\bin\java -Dant.home="C:\IBE_temp\Packager\ANTSDK" -classpath "C:\IBE_temp\Packager\ANTSDK\lib\ant-launcher.jar" org.apache.tools.ant.launch.Launcher release -v
Partial ANT Results:
compile:
Property "tested.project.absolute.dir" has not been set
Property "tested.project.absolute.dir" has not been set
[javac] C:\IBE_temp\Packager\AndroidSDK\tools\ant\main_rules.xml:384: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=l
ast; set to false for repeatable builds
[javac] com\infosol\SimpleTest\MyActivity.java added as com\infosol\SimpleTest\MyActivity.class doesn't exist.
[javac] com\infosol\SimpleTest\R.java added as com\infosol\SimpleTest\R.class doesn't exist.
[javac] Compiling 2 source files to C:\IBE_temp\_RTS\ANTTest\$SimpleTest\proj\bin\classes
[javac] Using modern compiler
[javac] Compilation arguments:
[javac] '-d'
[javac] 'C:\IBE_temp\_RTS\ANTTest\$SimpleTest\proj\bin\classes'
[javac] '-classpath'
[javac] 'C:\IBE_temp\_RTS\ANTTest\$SimpleTest\proj\bin\classes;C:\IBE_temp\_RTS\ANTTest\$SimpleTest\proj;C:\IBE_temp\_RTS\ANTTest\$SimpleTest\proj
\libs\airbootstap.jar;C:\IBE_temp\_RTS\ANTTest\$SimpleTest\proj\libs\xcelsiusLoad.jar;C:\IBE_temp\Packager\ANTSDK\lib\ant-launcher.jar;C:\IBE_temp\Pac
kager\ANTSDK\lib\ant-antlr.jar;C:\IBE_temp\Packager\ANTSDK\lib\ant-apache-bcel.jar;C:\IBE_temp\Packager\ANTSDK\lib\ant-apache-bsf.jar;C:\IBE_temp\Pack
ager\ANTSDK\lib\ant-apache-log4j.jar;C:\IBE_temp\Packager\ANTSDK\lib\ant-apache-oro.jar;C:\IBE_temp\Packager\ANTSDK\lib\ant-apache-regexp.jar;C:\IBE_t
emp\Packager\ANTSDK\lib\ant-apache-resolver.jar;C:\IBE_temp\Packager\ANTSDK\lib\ant-apache-xalan2.jar;C:\IBE_temp\Packager\ANTSDK\lib\ant-commons-logg
ing.jar;C:\IBE_temp\Packager\ANTSDK\lib\ant-commons-net.jar;C:\IBE_temp\Packager\ANTSDK\lib\ant-jai.jar;C:\IBE_temp\Packager\ANTSDK\lib\ant-javamail.j
ar;C:\IBE_temp\Packager\ANTSDK\lib\ant-jdepend.jar;C:\IBE_temp\Packager\ANTSDK\lib\ant-jmf.jar;C:\IBE_temp\Packager\ANTSDK\lib\ant-jsch.jar;C:\IBE_tem
p\Packager\ANTSDK\lib\ant-junit.jar;C:\IBE_temp\Packager\ANTSDK\lib\ant-junit4.jar;C:\IBE_temp\Packager\ANTSDK\lib\ant-netrexx.jar;C:\IBE_temp\Package
r\ANTSDK\lib\ant-swing.jar;C:\IBE_temp\Packager\ANTSDK\lib\ant-testutil.jar;C:\IBE_temp\Packager\ANTSDK\lib\ant.jar;C:\IBE_temp\java\lib\tools.jar'
[javac] '-sourcepath'
[javac] 'C:\IBE_temp\_RTS\ANTTest\$SimpleTest\proj\src;C:\IBE_temp\_RTS\ANTTest\$SimpleTest\proj\gen'
[javac] '-target'
[javac] '1.5'
[javac] '-bootclasspath'
[javac] 'C:\IBE_temp\Packager\AndroidSDK\platforms\android-8\android.jar'
[javac] '-encoding'
[javac] 'UTF-8'
[javac] '-g'
[javac] '-source'
[javac] '1.5'
[javac]
[javac] The ' characters around the executable and arguments are
[javac] not part of the command.
[javac] Files to be compiled:
[javac] C:\IBE_temp\_RTS\ANTTest\$SimpleTest\proj\src\com\infosol\SimpleTest\MyActivity.java
[javac] C:\IBE_temp\_RTS\ANTTest\$SimpleTest\proj\gen\com\infosol\SimpleTest\R.java
[javac] C:\IBE_temp\_RTS\ANTTest\$SimpleTest\proj\src\com\infosol\SimpleTest\MyActivity.java:1: illegal character: \65279
[javac] ?package com.infosol.SimpleTest;
[javac] ^
[javac] 1 error
BUILD FAILED
C:\IBE_temp\Packager\AndroidSDK\tools\ant\main_rules.xml:384: Compile failed; see the compiler error output for details.
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1150)
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:912)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
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:25)
at java.lang.reflect.Method.invoke(Method.java:597)
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: 1 second
I think you are facing this bug: http://bugs.sun.com/view_bug.do?bug_id=4508058
Try changing your file encoding to UTF-8 without BOM (see this).
这篇关于Android项目使用Ant编译不能编译,非法字符错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!