Android.App.Activity - 包不存在

时间:2011-08-31 21:42:27

标签: java android eclipse ant

我得到了一个应该正确编译的andorid项目文件。

我安装了最新的eclipse和Andriod ADT插件。

然后我导入了项目并右键单击build.xml以作为ANT构建运行。但是我在一些基本代码上遇到了错误,我确信这些错误源于我错误配置的设置。

我也试过从命令行使用ANT运行它。两次我都遇到了同样的错误

有什么问题?

    Buildfile: /Users/admin/Downloads/moshe-5/build.xml
    init:
    process.annotations:
        [javac] Compiling 9 source files to /Users/admin/Downloads/moshe-5/build/classes
        [javac] /Users/admin/Downloads/moshe-5/src/ti/moshe/CustomAdapter.java:7: package android.app does not exist
        [javac] import android.app.Activity;
        [javac]                   ^
        [javac] /Users/admin/Downloads/moshe-5/src/ti/moshe/CustomAdapter.java:8: package android.content does not exist
        [javac] import android.content.Context;
        [javac]                       ^
        [javac] /Users/admin/Downloads/moshe-5/src/ti/moshe/CustomAdapter.java:9: package android.graphics does not exist
        [javac] import android.graphics.Color;

5 个答案:

答案 0 :(得分:3)

在我的情况下,由于问题我没有 default.properties 文件,其中包含目标字段。

我必须手动创建文件并放入

target=android-9

或其他Android目标版本。

如果你跑

ant -v

使用您的构建命令,您可能会看到此行

Property "target" has not been set

[property] Unable to find property file: /PATH_TO/default.properties

这些消息有足够的提示。

希望这也解决了你的问题。

答案 1 :(得分:1)

找不到Android软件包。在构建步骤中,您应该包含对应于您要移植到的Android版本的android.jar。

答案 2 :(得分:1)

当你编写编译目标时,你将覆盖android_rules.xml给出的默认值:C:\ Program Files(x86)\ Android \ android-sdk \ platforms \ android-8 \ templates或者android_rules。 xml位于您的计算机上。

与上面提到的Potter一样,它找不到android库和其他库,所以请查看android_rules.xml以了解它如何设置正确的库:

<target name="compile" depends="-resource-src, -aidl"
            description="Compiles project's .java files into .class files">
    <!-- If android rules are used for a test project, its classpath should include
         tested project's location -->
    <condition property="extensible.classpath"
                       value="${tested.project.absolute.dir}/bin/classes" else=".">
        <isset property="tested.project.absolute.dir" />
    </condition>
    <condition property="extensible.libs.classpath"
                       value="${tested.project.absolute.dir}/libs" else="./libs">
        <isset property="tested.project.absolute.dir" />
    </condition>
    <javac encoding="ascii" target="1.5" debug="true" extdirs=""
            destdir="${out.classes.absolute.dir}"
            bootclasspathref="android.target.classpath"
            verbose="${verbose}" classpath="${extensible.classpath}">
        <src path="${source.absolute.dir}" />
        <src path="${gen.absolute.dir}" />
        <classpath>
            <fileset dir="${external.libs.absolute.dir}" includes="*.jar" />
            <fileset dir="${extensible.libs.classpath}" includes="*.jar" />
        </classpath>
   </javac>
</target>

classpath标签内部包含android.jar。您可以通过添加更多文件集来添加其他库

编写ANT编译目标的其他一些代码示例如下:

Can't build and run an android test project created using "ant create test-project" when tested project has jars in libs directory&lt; - 这对我有用

http://www.vogella.de/articles/ApacheAnt/article.html

http://www.alittlemadness.com/2010/05/31/setting-up-an-android-project-build/&lt; - 设置ANT项目

答案 3 :(得分:0)

很可能找不到Android,因为你没有定义sdk.dir属性,它告诉构建过程在哪里找到Android。此属性通常位于local.properties文件中,并在执行以下操作时填充:

android update project

如下所述:

http://developer.android.com/tools/projects/projects-cmdline.html#UpdatingAProject

答案 4 :(得分:-8)

不要使用ANT进行构建。 Eclipse和ADT插件提供了出色的工具来帮助您省去麻烦。 只需右键单击该项目,选择run as - &gt; Android应用程序