1

我有以下项目结构:

MyApp (an Android Application Project)
-- includes MyLibrary

MyLibrary (an Android Library Project)
--libs
----- core.jar*

问题是它core.jar没有内置到最终的 APK 中MyApp,所以我得到了NoClassDefFoundErrors,我的应用程序崩溃了。core.jar设置为导出MyLibrary,并显示在的MyAppAndroid Private Libraries 部分,但不包含在 APK 中。我正在使用最新的 Eclipse Kepler 和最新的 ADT。我究竟做错了什么?

4

2 回答 2

1

是否在项目的“Java Build Path”属性选项下的“Order and Export”选项卡上检查了“MyLibrary”?

我相信也许只有它。

于 2013-08-08T17:11:55.540 回答
1

我终于发现了错误。这是一个问题core.jar。我用 ant 脚本构建了它,似乎脚本很糟糕。是糟糕的脚本。这是一个很好的脚本我想知道哪个偏好是错误的。所以这根本不是 Android builder 的问题。


糟糕的脚本:

<?xml version="1.0" encoding="utf-8" ?>
<project name="project" default="jar" basedir=".">

    <target name="compile" description="Compile source">
        <mkdir dir="bin" />
        <javac srcdir="src" includes="**" destdir="bin"/>
        <copy todir="bin">
            <fileset dir="src" />
        </copy>
    </target>

    <target name="jar" description="Package into JAR" depends="compile">
        <jar destfile="project.jar" basedir="bin" compress="true" />
    </target>
</project>

好剧本:

<project name="core" basedir="." default="dist" >

    <property name="dist.dir" value="dist" />
    <property name="src.dir" value="src" />
    <property name="build.dir" value="bin" />

    <target name="dist" depends="clean, package" />
    <target name="clean" >
        <delete dir="${build.dir}" />
    </target>
    <target name="init" >
        <mkdir dir="${build.dir}" />
    </target>
    <target name="compile" >
        <javac debug="off" destdir="${build.dir}" source="1.6" srcdir="${src.dir}" target="1.6" />
    </target>
    <target name="package" depends="init, compile" >
        <jar basedir="${build.dir}" destfile="${dist.dir}/core.jar" />
    </target>

</project>
于 2013-08-08T19:08:56.650 回答