Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';Android在构建路径上的项目中找不到类?_Android_Eclipse_Package_Project - Fatal编程技术网

为什么可以';Android在构建路径上的项目中找不到类?

为什么可以';Android在构建路径上的项目中找不到类?,android,eclipse,package,project,Android,Eclipse,Package,Project,我正在构建一个Android应用程序,我想在另一个Eclipse项目中使用一个包中的类(一个普通的Java,非Android的,如果需要的话)。我右键单击Android项目,选择properties | Java build path | Projects,并选中我想要的类。然后,我添加了一条import语句,Eclipse似乎接受该语句(即错误图标,指示它无法识别该类)。以下是主要活动的代码: package com.MeadowEast.tmptest; import learn.Card

我正在构建一个Android应用程序,我想在另一个Eclipse项目中使用一个包中的类(一个普通的Java,非Android的,如果需要的话)。我右键单击Android项目,选择properties | Java build path | Projects,并选中我想要的类。然后,我添加了一条import语句,Eclipse似乎接受该语句(即错误图标,指示它无法识别该类)。以下是主要活动的代码:

package com.MeadowEast.tmptest;

import learn.Card; // the class I want
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView t  = (TextView) findViewById(R.id.textView2);
        Card c = new Card("abc","def","ghi"); // using the class
        t.setText(c.getHanzi());
    }
}
在非Android Java项目中使用完全相同的方法很好。但是,当我试图在模拟器中运行上面的代码时,它就消失了,错误是
找不到类“learn.Card”


我曾经遇到过一个类似的JAR文件问题,并且了解到有两个必要的步骤(第二个步骤是将JAR的副本放在libs文件夹中)。这里也需要第二步吗?还是有其他问题?

如果您使用源代码,请将它们放在您的项目中

如果您使用jar,则应将其放入libs文件夹中。因为,当您在设备中运行应用程序时,所有

您的代码必须在apk(excepts framework.jar)中,否则它找不到您的代码。如果你

将jar放在libs文件夹中,eclipse(即apkbuilder)将把它们打包到apk中


文件。

如果您使用源代码,请将它们放在您的项目中

如果您使用jar,则应将其放入libs文件夹中。因为,当您在设备中运行应用程序时,所有

您的代码必须在apk(excepts framework.jar)中,否则它找不到您的代码。如果你

将jar放在libs文件夹中,eclipse(即apkbuilder)将把它们打包到apk中


文件。

有很多方法可以管理此文件

  • 编译并在libs目录中包含一个jar
  • 使用某种依赖关系管理(LaMaven)编译并包含
  • Eclipse允许库依赖于项目工作区中的其他(未编译)库
  • Android Studio允许一个模块依赖于另一个(未编译)模块
  • 注意:选项3和4与选项2的轻型版本非常相似

    还要注意的是,对于一个小项目,2很可能是多余的,可能会引入不必要的额外编译时间

    就个人而言,对于库不经常更改的项目,我更喜欢选项1;对于库所依赖的项目,我更喜欢选项3/4


    1的好处是,当库发生更改时(api中的更改,-您必须尽全力更新到最新版本),您不会感到惊讶。3/4的好处是,如果您要更新库来处理项目,您不必不断地重新编译和导入jar。

    有很多方法来管理它

  • 编译并在libs目录中包含一个jar
  • 使用某种依赖关系管理(LaMaven)编译并包含
  • Eclipse允许库依赖于项目工作区中的其他(未编译)库
  • Android Studio允许一个模块依赖于另一个(未编译)模块
  • 注意:选项3和4与选项2的轻型版本非常相似

    还要注意的是,对于一个小项目,2很可能是多余的,可能会引入不必要的额外编译时间

    就个人而言,对于库不经常更改的项目,我更喜欢选项1;对于库所依赖的项目,我更喜欢选项3/4


    1的好处是,当库发生更改时(api中的更改,-您必须尽全力更新到最新版本),您不会感到惊讶。3/4的好处是,如果您要更新库以使用项目,则不必不断重新编译和导入JAR。

    根据您使用的IDE,有不同的答案

    如果您使用的是Eclipse/ADT,那么您应该能够简单地将jar放到名为“libs”的顶级目录中。一定要把名字写对

    即使这样做了,Eclipse也可能需要“抖动”以使其注意到新文件。除非您看到包含您的库的“Android私有库”条目,否则它不会注意到。尝试重新构建、重新导入、刷新等。菲

    如果您使用的是Intellij/Studio(因此是Gradle),则需要向Gradle构建文件添加一行,如下所示:

    compile fileTree(dir: 'libs', include: ['*.jar'])
    
    它位于
    app
    文件夹中
    build.gradle
    文件的
    dependencies
    子句中

    这次jar文件本身进入目录
    app/libs


    在你做了那个“抖动”工作室之后。“同步”,“清除缓存并重新启动”。所有的惯用伎俩。当您的库出现在“项目”窗格中的“外部库”选项卡下时,您就知道您已经成功了,这取决于您使用的IDE

    如果您使用的是Eclipse/ADT,那么您应该能够简单地将jar放到名为“libs”的顶级目录中。一定要把名字写对

    即使这样做了,Eclipse也可能需要“抖动”以使其注意到新文件。除非您看到包含您的库的“Android私有库”条目,否则它不会注意到。尝试重新构建、重新导入、刷新等。菲

    如果您使用的是Intellij/Studio(因此是Gradle),则需要向Gradle构建文件添加一行,如下所示:

    compile fileTree(dir: 'libs', include: ['*.jar'])
    
    它位于
    app
    文件夹中
    build.gradle
    文件的
    dependencies
    子句中

    这次jar文件本身进入目录
    app/libs


    在你做了那个“抖动”工作室之后。“同步”,“清除缓存并重新启动”。所有的惯用伎俩。当您的库出现在“项目”窗格的“外部库”选项卡下时,您知道您已经成功了。是的,如果它是jar,您应该将其放入libs文件夹。是的,