gpt4 book ai didi

Blackberry Apps - 将代码签名的 jar 导入应用程序项目

转载 作者:行者123 更新时间:2023-12-03 17:20:50 24 4
gpt4 key购买 nike

我正在开发一个库项目,Blackberry Java 开发人员可以将其导入到他们的项目中。它使用 protected RIM API,需要对它进行代码签名,我已经这样做了。但是,我无法导入 Jar 并使用简单的 helloWorld 应用程序。我正在使用 Eclipse 插件 Blackberry-JDE。

编辑:找到解决方案....

因为我找到了解决方案,所以我删除了我尝试过的东西,只留下了解决方案......

构建 SDK/库(使用 BB-ANT-TOOLS,无论是在 eclipse 中还是在独立版本中)
脚步:

A)我必须将我的 SDK jar 构建为“cldc”应用程序而不是“库”
项目,使用 BB-ANT-TOOLS。这解决了我上面的大部分问题。

B) 然后我添加了一个 ANT 任务来从步骤 A 中获取生成的 JAR 和
请执行下列操作:

  • 解压,
  • 编辑 list 文件以删除“MicroEdition-Profile: MIDP-2.0”行——当您尝试将 jar 标记为导出时,此行会导致错误。
  • 然后重新压缩 jar 。

  • 注意:我写了一个切碎的 BB-ANT-TOOLS ant 脚本来展示你如何使用
    上面这两个步骤就做好了。该脚本包含在下面。

    作为最终用户或在您自己的项目中使用 SDK jar。
    然后要将 jar 集成到 bb-eclipse 中,请执行以下操作:

    A) 将 jar 添加到 BuildPath

    B) 在“Order and Export”选项卡上的“Java Build Path”下,选择 jar
    导出。这会导致 rapc 将 jar 构建到 COD 文件中,因此您只需
    最后有一个 COD。

    现在,当用户构建此项目时,jar 将集成到最终
    cod 文件,而且很容易传送到手机或 SIM 卡。
    <?xml version="1.0" encoding="UTF-8"?>
    <project name="XXXXXMobileLib" default="full" basedir=".">
    <description>
    Description: Builds the BBLIB. Uses bb-ant-tools to build, sign and package for blackberry.
    </description>

    <taskdef resource="bb-ant-defs.xml" classpath="BIN/BB_ANT_lib/bb-ant-tools.1.x.x.jar" />
    <property environment="env" />

    <!-- User defined Vars -->
    <property name="builderRoot" value="." />
    <property name="SIG_PASSWORD" value="XXXXXXXXX" />
    <property name="javaHome" value="${env.JAVA_HOME}" />
    <echo>${javaHome}</echo>
    <property name="jdehome" value="${env.BBJDE_HOME}\" />
    <property name="simulator" value="${jdehome}\simulator" />
    <property name="bin" value="${jdehome}\bin" />
    <property name="releaseBuildOut" value="${builderRoot}\release_out\" />
    <property name="srcBuildOut" value="${builderRoot}\srcBuild_out\" />
    <property name="JarFixTemp" value="${builderRoot}\.tempZip\" />
    <property name="buildVersion" value="${env.BUILD_VERSION}" />

    <property name="application_id" value="com.XXXXX.foo.bar.${buildVersion}" />
    <property name="application_name" value="XXXXX BBLIB v${buildVersion}" />
    <property name="application_desc" value="XXXXX BBLIB v${buildVersion}" />
    <property name="application_vendor" value="XXXXX" />
    <property name="applicaiton_filename" value="XXXXXBBLIB${buildVersion}" />
    <property name="applicaiton_srcs" value="${builderRoot}/src_in_location/" />
    <property name="zipOutName" value="XXXXX-${buildVersion}BBLIB.zip" />
    <property name="zipOutNameJavadocs" value="XXXXX-${buildVersion}BBLIBjavadoc.zip" />

    <property name="jde.home" location="${jdehome}" />

    <!--
    MAIN ENTRY TARGET.
    -->
    <target name="full" depends="clean,javadoc,buildRIM,FixJarManifest,sign,distribute" />

    <target name="FixJarManifest">
    <tstamp/>
    <mkdir dir="${JarFixTemp}"/>
    <unzip src="${builderRoot}/release_out/${applicaiton_filename}.jar" dest="${JarFixTemp}"/>
    <delete dir="${builderRoot}/release_out/${applicaiton_filename}.jar"/>
    <!-- For some reason rapc puts this line into the manifest file, but it breaks the JDE plug-in when you try to
    set the jar for export. Giving an error like this "Project {0} missing......"
    To avoid having an empty line in the manifest, Im just injecting a new attribute BuildTime-->
    <replace file="${JarFixTemp}/META-INF/MANIFEST.MF" token="MicroEdition-Profile: MIDP-2.0" value="Build-Time: ${DSTAMP}-${TSTAMP}"/>
    <zip destfile="${builderRoot}/release_out/${applicaiton_filename}.jar"
    basedir="${JarFixTemp}"
    />
    <delete dir="${JarFixTemp}"/>
    </target>

    <!-- Cleanup any existing files in the outdir -->
    <target name="clean">
    <delete>
    <fileset dir="${releaseBuildOut}" includes="**" />
    </delete>
    </target>


    <!-- Generate the Javadocs -->
    <target name="javadoc">
    <javadoc access="public" destdir="${releaseBuildOut}/JavaDocs" author="true" version="true" use="true" defaultexcludes="yes" excludepackagenames="net.rim.*" windowtitle="FOO_BAR">
    <fileset dir="${applicaiton_srcs}/XXXXXMobileLib">
    <include name="src/**/*.java" />
    </fileset>
    </javadoc>
    <zip destfile="${releaseBuildOut}/${zipOutNameJavadocs}" basedir="${releaseBuildOut}/JavaDocs" />
    <delete dir="${releaseBuildOut}/JavaDocs"/>
    </target>

    <target name="buildRIM" description="Builds Project">
    <rapc jdehome="${jdehome}" jdkhome="${javaHome}" destdir="${releaseBuildOut}" output="${applicaiton_filename}" quiet="false">
    <!-- Building as a cldc applicaiton, so it can be packaged up with our final cod, as a single cod -->
    <jdp type="cldc"
    title="${application_desc}"
    vendor="${application_vendor}"
    version="${buildVersion}"
    description="${application_desc}"
    arguments=""
    systemmodule="false"
    runonstartup="false"
    startuptier="7"
    ribbonposition="0">
    </jdp>
    <src>
    <fileset dir="${applicaiton_srcs}/MobileLib">
    <include name="src/**/*.java" />
    </fileset>
    </src>
    </rapc>
    </target>

    <target name="sign" depends="clean,buildRIM">
    <sigtool password="${SIG_PASSWORD}">
    <fileset dir="${releaseBuildOut}" includes="*.cod" />
    </sigtool>
    <echo>Contents of the signingtool's logfile: </echo>
    <echo file="LogFile.txt" />
    </target>

    <!-- build and distribute the jar -->
    <target name="distribute" depends="buildRIM" description="generate the distribution">
    <alx destdir="${releaseBuildOut}" filename="${applicaiton_filename}.alx">
    <application id="${application_id}" name="${application_name}">
    <codset>
    <fileset dir="${releaseBuildOut}" includes="*.cod" />
    </codset>
    </application>
    </alx>

    <!-- Create release zip -->
    <delete file="${releaseBuildOut}/${zipOutName}" />
    <zip destfile="${releaseBuildOut}/${zipOutName}">
    <!-- zip up the BB jar and drop it for distribution -->
    <zipfileset dir="${releaseBuildOut}" includes="**/*.jar" />
    </zip>

    <move todir="${releaseBuildOut}/UNUSED_BUILD_OUTPUT_FILES/"><!-- move unwanted files, leaving the zip behind -->
    <fileset dir="${releaseBuildOut}">
    <include name="**/*.*"/>
    <exclude name="**/*.zip"/>
    </fileset>
    </move>
    </target>
    </project>

    最佳答案

    我已经使用您的步骤 A 和 B 创建了一个“库”-谢谢。
    Blackberry 的最新 Eclipse 插件 (1.3.0.201102031007-19) 有一个“Blackberry | Package Project”命令。我用它来创建 jar 文件(它把它放在项目的“deliverables”文件夹中)。

    然后我按照您的建议更改了 list 以删除 MIDP 行(这显然是一个已知错误)。最后,我按照步骤将 lib 添加并部署到我的项目中。 (顺便说一句,这些是添加横幅/广告库的相同步骤 - 非常简单。)

    我也有一个使用 bb-ant-tools 的独立/外部构建脚本过程。我最近添加了“外部库 jar”功能来适应这一点。但是在 Eclipse 中使用新功能让我怀疑是否需要维护我的命令行构建脚本,因为 GUI 现在为我做了这些。

    对我来说,关键是按照您的指示将我的库项目的构建切换到“黑莓应用程序”(例如 CDLC 应用程序)。将它设置为“库”后,我收到了“内脏”错误。

    谢谢你的帖子。

    关于Blackberry Apps - 将代码签名的 jar 导入应用程序项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2791635/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com