android无法从外部jar中找到类

I Z*_*I Z 13 android jar external

我正在尝试创建一个简单的测试应用程序,它基本上通过从外部JAR调用一些简单的功能来扩展Android Hello World教程应用程序.但是,当我运行应用程序时,它无法从JAR中找到该类.我究竟做错了什么?

以下是JAR的完整来源:

package com.mytests.pow;

public class power2 {

private double d;   

public power2()
{
    d = 0.0;
}   

public String stp2(double dd) 
{
    d = dd*dd;
    return String.format("%e", d);
}

}
Run Code Online (Sandbox Code Playgroud)

这是"Hello World ++"来源:

package com.myLuceneTests.namespace;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

import com.mytests.pow.*;

public class AndroidSimpleSIH_EclipseActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {

    power2 pp = new power2();
    String iout = pp.stp2(12.0);

    super.onCreate(savedInstanceState);
    TextView tv = new TextView(this);
    tv.setText(iout);
    setContentView(tv);

}
}
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,我在logcat中得到这个:

11-22 12:24:52.697  2963  2963 E dalvikvm: Could not find class 'com.mytests.pow.power2', referenced from method com.myLuceneTests.namespace
Run Code Online (Sandbox Code Playgroud)

.AndroidSimpleSIH_EclipseActivity.onCreate

然后

11-22 12:24:52.713  2963  2963 E AndroidRuntime: java.lang.NoClassDefFoundError: com.mytests.pow.power2
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?谢谢!

顺便说一句,我的实际目标是在Android应用程序中使用真正的JAR(而不是这个玩具).我可能可以访问该JAR的代码并且可能能够重建它,但它是一个很大的Java代码,我很可能在重建它时遇到问题所以我试图使用预先构建的JAR.

Lux*_*ode 21

没有必要构建外部jar.尝试从构建路径中删除它并按照以下步骤操作:

  1. 在Android项目的根目录中创建一个名为的文件夹libs.
  2. 将jar添加到该文件夹​​.
  3. 右键单击jar并单击以添加到构建路径.
  4. 清理您的项目并再次尝试.

  • +1因为答案是嵌入在这里的.您必须包含要在项目的libs /目录中打包的任何JAR,以便将它们捆绑到APK中.将它们添加到构建路径只是让Eclipse通过编译步骤. (4认同)