在Android项目中使用Java库

时间:2015-01-03 06:54:55

标签: java android parse-platform libraries

我想使用我在Android项目中编写的Java库。我做了两件事:

  1. 将jar添加到构建路径。

    • 在软件包资源管理器中现在有一个Referenced Library文件夹
    • 编译工作
  2. 我将jar复制到项目中的libs文件夹

    • 编译工作
  3. 但是程序在运行时崩溃了两种方法。该程序无法识别我正在调用的类。抛出classDefNotFound

    我已尝试过各种jar文件。我写的那些不起作用。虽然下载的罐子工作。也许我写的课程出了问题?

    Android代码:

    package com.davidk.androidtest;
    
    import com.davidk.libs.Math;            //<--classDefNotFound is thrown
    import com.parse.Parse;                 //<--works
    import com.parse.ParseObject;           //<--works
    
    public void pressButtonOnClick(View v){
        int answer = Math.add(1,1);
    
        answerText.setText(answer);
    }
    
    public void pingParseButtonOnClick(View v){
        ParseObject p = new ParseObject("Ping");
        p.put("String", "ping");
        p.saveInBackground();
    }
    

    davidk.libs.Math代码:

    package com.davidk.libs;
    
    public class Math {
    
        public static int add(int x, int y){
    
            return x + y;
    
        }
    }
    

2 个答案:

答案 0 :(得分:0)

我猜你正在使用Eclipse。不要试图弄乱罐子。最简单的方法是:

  • 在您的图书馆项目中,查看项目属性
  • 的Android部分中的Is Library
  • 在您的相关项目中,将库添加到同一位置(Android部分)。不要在&#34; Java构建路径中添加任何内容&#34;部分 ! (这是最常见的错误)

答案 1 :(得分:0)

导出的每个jar文件都包含一个清单文件,代码尝试引用该文件。在您的情况下,我猜清单文件丢失或损坏。为了生成没有任何问题或复杂的jar,有许多开源工具可用,这将帮助您实现这一目标。

其他可能的方法是@Orabig建议的。

请访问以下链接了解更多信息 http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html