我有以下项目结构:
MyApp (an Android Application Project)
-- includes MyLibrary
MyLibrary (an Android Library Project)
--libs
----- core.jar*
问题是core.jar
没有内置MyApp
的最终APK,所以我得到了NoClassDefFoundError
s,我的应用程序崩溃了。 core.jar
设置为在MyLibrary
中导出,并显示在MyApp
的Android私有库部分中,但它不包含在APK中。
我正在使用最新的Eclipse Kepler和最新的ADT。
我究竟做错了什么?
答案 0 :(得分:1)
在项目的“Java Build Path”属性选项下的“Order and Export”选项卡上选中“MyLibrary”吗?
我相信它可能只是它。
答案 1 :(得分:1)
我终于找到了错误。这是core.jar
的问题。我用ant脚本构建它,看起来脚本很糟糕。 This是糟糕的剧本。 this是好脚本。我不知道哪个偏好错了。
所以根本不是Android构建器问题。
糟糕的剧本:
<?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>