2012-08-27 59 views
1

我试着用BB蚁工具和IM运行到了一些错误包不存在错误

在有些情况下,其中2涉及3个不同的错误自动化我们的构建过程

[javac] D:\ dev \ java \ workspaces \ bb workspace \ blackberry \ adaffix \ src \ com \ adaffix \ blackberry \ AdaffixApplication.java:55:can not find symbol [javac] symbol:class PhoneListener [javac] public class AdaffixApplication扩展UiApplication实现PhoneListener,GlobalEventListener {

[javac] D:\ dev \ java \ workspaces \ bb workspace \ blackb erry \ adaffix \ src \ com \ adaffix \ blackberry \ AdaffixApplication.java:29:net.rim.blackberry.api.invoke包不存在[javac] import net.rim.blackberry.api.invoke.Invoke; D:\ dev \ java \ workspaces \ bb workspace \ blackberry \ adaffix \ src \ com \ adaffix \ blackberry \ main \ block \ AddBlock.java:167:警告:用于编码UTF-8的不可映射字符[javac的] //贸易投资自由化【J直到分贝

这里是我的build.xml

<?xml version="1.0" encoding="ISO-8859-1"?> 
<project name="appname" default="build" basedir="."> 

    <!-- BLACKBERRY ANT TOOLS --> 
    <property name="bb-ant-tools.home" location="D:/dev/bb-ant-tools-1.2.13-bin" /> 
    <taskdef resource="bb-ant-defs.xml" classpath="${bb-ant-tools.home}/bb-ant-tools.jar" />  
    <property name="jdehome" value="D:/dev/eclipse/blackberry/plugins/net.rim.ejde.componentpack6.0.0_6.0.0.43/components" /> 
    <property name="jdkhome" value="C:/Program Files (x86)/Java/jdk1.6.0_34" /> 

    <!-- CONFIG STUFF --> 
    <property name="cod.name" value="appname" /> 
    <property name="app.name" value="appname" /> 
    <property name="app.version" value="2.7.5" /> 
    <property name="app.description" value="" /> 
    <property name="app.vendor" value="appname GmbH" /> 

    <!-- FOLDERS --> 
    <property name="build.dir" location="D:/dev/java/workspaces/bb workspace/blackberry/build" /> 
    <property name="bbminterface.dir" location="D:/dev/java/workspaces/bb workspace/blackberry/BBMInterface" /> 
    <property name="bbmimpl.dir" location="D:/dev/java/workspaces/bb workspace/blackberry/BBMImplementation" /> 
    <property name="main.dir" location="D:/dev/java/workspaces/bb workspace/blackberry/appname" /> 

    <target name="build" description="Builds Project"> 

     <!--<mkdir dir="${build.dir}" /> --> 
     <javac target="1.4" source="1.4" destdir="${build.dir}" encoding="utf-8"> 
      <src path="${bbminterface.dir}/src"/> 
      <src path="${bbmimpl.dir}/src"/> 
      <src path="${main.dir}/src"/> 
      </javac>  


     <rapc output="BBMInterface" destdir="${build.dir}" jdehome="${jdehome}" jdkhome="${jdkhome}" verbose="false" quiet="true" nowarn="true"> 
      <src> 
       <fileset dir="${bbminterface.dir}/src"/> 
      </src> 
      <jdp type="library" title="appname BBM Interface" vendor="${app.vendor}" version="1.0.0"> 
       <entry title="appname BBM Interface" description=""/>  
      </jdp> 
     </rapc> 
     <rapc output="BBMImplementation" destdir="${build.dir}" jdehome="${jdehome}" jdkhome="${jdkhome}" verbose="false" quiet="true" nowarn="true"> 
      <src> 
       <fileset dir="${bbmimpl.dir}/src"/> 
      </src> 
      <import location="${bbmimpl.dir}/external jars/bbm sdk/net_rim_bb_qm_platform.jar" /> 
      <import location="${build.dir}/BBMInterface.jar" /> 
      <jdp type="library" title="appname BBM Implementation" vendor="${app.vendor}" version="1.0.0" runonstartup="true" startuptier="6"> 
       <entry title="appname BBM Implementation" description="" runonstartup="true" startuptier="6"/> 
      </jdp> 
     </rapc> 

      <javac srcdir="${main.dir}" encoding="UTF-8" /> 
     <rapc output="${cod.name}" destdir="${build.dir}" jdehome="${jdehome}" jdkhome="${jdkhome}" verbose="false"> 

      <src> 
       <fileset dir="${main.dir}/src" /> 
      </src> 
      <src> 
       <fileset dir="${main.dir}/res" /> 
      </src> 
      <src> 
       <fileset file="${main.dir}/external jars/bb payment sdk/paymentapi.jar" /> 
       <fileset file="${main.dir}/external jars/bb advertising sdk/net_rim_bbapi_adv_app.jar" /> 
      </src> 
      <import location="${main.dir}/external jars/bb payment sdk/paymentapi.jar" /> 
      <import location="${main.dir}/external jars/bb advertising sdk/net_rim_bbapi_adv_app.jar" /> 
      <import location="${build.dir}/BBMInterface.jar"/> 

      <jdp type="cldc" title="${app.name}" vendor="${app.vendor}" icon="${main.dir}/res/image/icon.png" version="${app.version}" description="${app.description}" startuptier="7" ribbonposition="0"> 
       <entry title="${app.name}" icon="${main.dir}/res/image/icon.png" description="${app.description}" runonstartup="true" arguments="boot" systemmodule="true" startuptier="7" ribbonposition="0" /> 
       <!--<entry title="${app.name}" icon="../res/icon.png" description="@{description}" arguments="daemon" runonstartup="true" systemmodule="true" startuptier="7" ribbonposition="0" /> --> 
      </jdp> 
     </rapc> 
       <sigtool codfile="${build.dir}/BBMInterface.cod" password="password"/> 
       <sigtool codfile="${build.dir}/BBMImplementation.cod" password="password"/> 
       <sigtool codfile="${build.dir}/${cod.name}.cod" password="password" /> 
     </target> 
     <target name="sign" description="Sign the cod files"> 
     </target> 
    <!--<target name="clean"> 
     <delete dir="${dest.dir}" /> 
    </target> --> 

</project> 

任何人都可以点我在正确的方向? im kind of lost here 我认为所有的RIM API都会被bb ant工具自动包含进去

回答

0

问题不在于bb-ant-tools。

为什么您需要javac部分如果您的rapc可以从源建立项目?之后你甚至不使用javac的结果。我建议删除它,它会修复你的构建。

+0

谢谢你的回复! 但是当我这样做,它仍然产生相同的错误。 这是我第一次尝试这样做,所以请原谅任何绝望的愚蠢的错误! 我添加javac标签的原因是因为我想添加编码和合规性级别,但正如我从你的答案中理解的,我做错了.. – user991242

+0

只需删除带有某些UTF符号的注释即可。小心你有两个javac部分 –

+0

谢谢你修复不存在的错误!但是现在我有一些unicode错误: [rapc] D:\ dev \ java \ workspaces \ bb workspace \ blackberry \ adaffix \ src \ com \ adaffix \ util \ string \ StringUtil.java:449:非法字符:\ 177 [这是为什么我试图添加javac语句。为什么我试图添加javac语句?为什么我尝试添加javac语句首先在 – user991242

1

您是在Linux还是Windows上构建?在将类文件编译为.cod文件之前,Rapc使用Java SDK“javac”将java源文件编译为.class文件。不幸的是,rapc并没有提供任何方法将“-encoding”选项传递给javac,因此您被平台的默认编码所困扰。这是Windows上的cp-1252,OSX上的MacRoman以及Linux上的UTF-8。由于它试图将你的源代码解释为UTF-8,我猜你正在使用linux。

有固定此三个选项:

  1. 你可以回去明确编译使用javac Ant任务的Java源代码。您以前的尝试不起作用,因为您仍然将源代码传递给rapc。 Rapc也可以从类文件开始,因此您可以自己完成javac步骤,然后将输出目录传递给rapc进行处理。

  2. 如果您不想自己整理javac命令,还可以使用bb-ant-tools的修补程序覆盖默认的系统编码。

  3. 如果您只是在Linux上构建您的BlackBerry应用程序,则可以将源文件编码切换为UTF-8并完成此操作。如果有开发人员正在使用Windows,这将无法正常工作。 Windows是通用的选择,因为它是模拟器唯一的工作地点。通过切换到UTF-8编码,Windows开发人员将面临现在面临的同样问题 - rapc将使用cp-1252的系统默认值进行编译,但源文件将使用UTF-8编码。

+0

你好,谢谢你的回答! 这是一个Windows系统,我试图做到这一点。 感谢您为我排序的javac部分(doh ..)我可能会重新审视,如果这是唯一的方法来控制编码fromt他构建文件 – user991242

+0

你能告诉我更多关于覆盖系统编码的补丁吗? – user991242

+0

我结束了改变代码,所以它没有“非法”字符。现在它似乎工作! – user991242

0

发生在我身上。是因为我没有将selenium-server-standalone-3.4.0.jar复制到我的C:\ jars dir(ws。罐子)