Java Android.App.Activity-包不存在

Java Android.App.Activity-包不存在,java,android,eclipse,ant,Java,Android,Eclipse,Ant,我得到了一个应该正确编译的ANDROID项目文件 我安装了最新的eclipse和Andriod ADT插件 然后我导入了该项目,右键单击build.xml以作为ANT build运行。但我在一些基本代码上得到了EROR,我确信这些代码源自我配置错误的设置 我还尝试从命令行使用ANT运行它。两次我都犯了同样的错误 怎么了 Buildfile: /Users/admin/Downloads/moshe-5/build.xml init: process.annotations

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

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

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

我还尝试从命令行使用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;

不要费心使用ANT构建。 Eclipse和ADT插件提供了非常好的工具来为您省去麻烦。
只需右键单击项目,选择RunAs->Android应用程序,它不会找到Android软件包。在构建步骤中,您应该包括与要移植到的android版本相对应的android.jar。

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

像上面提到的波特一样,它找不到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>

类路径标记中包含了android.jar。您可以通过添加更多文件集来添加其他库

其他一些编写ANT编译目标代码的好例子有:


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

android update project
如下所述:


在我的例子中,由于问题,我没有包含目标字段的default.properties文件

我必须手动创建文件并将

target=android-9
或者其他Android目标版本

如果你跑

ant -v
使用build命令,您可能会看到这一行

Property "target" has not been set

这些信息已经足够提示了


希望这也能解决您的问题。

没有运行android应用程序,请看屏幕截图,您创建的项目是android项目吗?如果您导入的项目最初不是Eclipse项目,那么它可能不是。IIRC上下文菜单应该有一个选项Android>Convert to Android project(或类似选项)。这是一个可怕的建议,尤其是当你试图使用Jenkins等建立一个连续的构建时。@incredipp我建议你自己学习如何构建这个项目,而不是依赖IDE来学习它的实际工作原理。工程师应该了解他们所建立的系统。这个答案并没有回答他的问题,也就是“怎么了?”那么一个Android程序员需要走多远才能开发一个应用程序呢?也许可以深入研究Eclipse运行ANT脚本的方式?或者研究Dalvik虚拟机及其工作方式?我真的认为你不必“理解系统”这样的组件,除非这对你正在做的事情是必要的,或者对你正在努力实现的目标没有帮助,并且需要一些调整来使它工作。但是我想你不会同意我的意见,所以我们会同意不同意。好的,我在build.properties文件中找到了缺少的配置设置。现在它编译好了。但它不会运行。我没有运行android菜单。而且无法在eclipse的Android emulator中运行该应用程序
[property] Unable to find property file: /PATH_TO/default.properties