当前位置: 首页 > 知识库问答 >
问题:

在使用bb ant工具构建时,包不存在错误

龚凌
2023-03-14

我试图使用bb ant工具自动化我们的构建过程,但我遇到了一些错误

有3个不同的错误,其中2个是相关的

[javac]d:\dev\java\workspaces\bb workspace\blackberry\adaffix\src\com\adaffix\blackberry\AdaffixApplication.java:55:找不到符号[javac]符号:类PhoneListener[javac]公共类AdaffixApplication扩展UiApplication实现PhoneListener,GlobalEventListener{

[javac]D:\dev\java\workspaces\bb workspace\blackberry\adaffix\src\com\adaffix\blackberry\adaffixapplication.java:29:package net.rim.blackberry.api.invoke不存在[javac]导入net.rim.blackberry.api.invoke;

[javac]d:\dev\java\workspaces\bb workspace\BlackBerry\adaffix\src\com\adaffix\BlackBerry\main\block\addblock.java:167:警告:用于编码UTF-8的不可映射字符[javac]//tilf?j til db

下面是我的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> 

有人能给我指个正确的方向吗?我有点迷路了,我以为所有的RIM API都会被bb ant工具自动包含

共有1个答案

韩刚洁
2023-03-14

您是在Linux上构建还是在Windows上构建?Rapc使用java SDK“javac”将java源代码编译为。class文件,然后将类文件编译为。cod文件。不幸的是,rapc没有提供将“-encoding”选项传递给javac的任何方法,因此您只能使用平台默认编码。这是Windows上的cp-1252,OSX上的MacRoman和Linux上的UTF-8。由于它试图将您的源代码解释为UTF-8,我猜您使用的是Linux。

有三种方法可以解决这个问题:

>

  • 您可以返回到使用javac ant任务显式编译java源代码。您以前的尝试不起作用,因为您仍在向RAPC传递源代码。Rapc也可以从类文件开始,所以您可以自己执行javac步骤,然后将输出目录传递给Rapc进行处理。

    如果您只在Linux上构建BlackBerry应用程序,您只需将源文件编码切换到UTF-8就可以了。不过,如果开发人员正在使用Windows,这将不会很好地工作。Windows是一个常见的选择,因为它是模拟器工作的唯一地方。通过切换到UTF-8编码,Windows开发人员将面临与您现在面临的相同的问题--rapc将使用系统默认的cp-1252进行编译,但源文件将使用UTF-8。

  •  类似资料:
    • 我有一个maven项目需要 我可以在IntelliJ中成功构建它。但当我在外部使用“mvn clean install”构建它时。我收到错误“未能在项目上执行目标org.apache.maven.plugins:maven编译器plugin:3.1:compile(默认编译)…

    • 不确定我是否必须添加任何插件才能让它在詹金斯运行?

    • 问题内容: 我有一个目录结构,例如在包含Java文件的根目录下。我在与上述相同的根目录中的目录结构中还有另一个Java文件。我正在从中调用方法,但收到错误消息,该程序包不存在。 我已经在我的java文件中导入了包。能给我一些建议吗? 问题答案: 这有效: com / example / model / BearExtra.java com / example / web / Bear.java 现

    • 我无法建立我的android应用程序使用,因为我得到以下错误。昨天一切正常。你知道问题出在哪里吗?

    • 问题是,通过包装器执行 gradle 命令将导致编译 Kotlin 步骤失败,并有不同的提及,即它无法找到与 javafx 相关的类/包。 我正在设置整个项目结构,以便所有构建系统都不依赖于IDE,而是依赖于使用包装器来执行所有构建。 但是在命令行上执行构建会因上述错误而失败。但是,通过Intellij中嵌入的Gradle执行“构建”是有效的。(附图片) 有几件事要提一下: < li>kotlin

    • Hii我在IntelliJ中构建项目时遇到了错误。我的笔记本电脑是MacBook M1 Pro。我的Java版本是“11.0.14”,语言级别是11。当我在intellij中构建它时,它失败了,错误是“java:package com.sun.javadoc不存在”。但是,在maven终端上构建时,也就是在具有相同java版本和语言级别的命令行上,它运行良好,构建成功。 解决此错误的任何帮助。谢谢