我正在尝试了解Android中的库使用情况。所以我创建了一个非常简单的库并将其导入我的项目中。我想从 MyOperations.jar (库文件)中调用 cubeOf()方法。没有构建错误,但是当我运行时应用程序意外停止。
MainActivity.java 类(在MyApplication中):
package com.sam.myapplication;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;
import com.sam.mylibrary.MyOperations;
public class MainActivity extends Activity {
TextView tv1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv1 = (TextView) findViewById(R.id.textView1);
MyOperations op = new MyOperations();
int a = op.cubeOf(8); // Just a random number
tv1.setText(a);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
MyOperations.java 类(在MyLibrary中):
package com.sam.mylibrary;
public class MyOperations {
public static void main(String[] arg) {
}
public static int cubeOf(int i) {
int c = i*i*i;
return c;
}
}
答案 0 :(得分:0)
更改
tv1.setText(a);
带
tv1.setText(String.valueOf(a));
在你的情况下,你使用a
作为R.string的索引,如果它不存在,将抛出ResourceNotFoundException
答案 1 :(得分:0)
您没有提及申请崩溃的原因。我相信可能存在两个问题:
你可能只是使用:
把setText(“”+ a)
所以没有混淆'a'被用作数字与字符串
看看这个答案:
How can I use external JARs in an Android project?
如果您有最新版本的Eclipse / ADT,该文件夹应该被称为'libs',否则该文件夹被称为'lib'(Eclipse / ADT TBD)
此外,“Java Build Path” - > “订购和导出”确保您正在检查外部库,特别是如果来自不同的包。
答案 2 :(得分:0)
为了确认之前的回复,您在onCreate
中尝试了两个更改?也就是说,
int a = MyOperations.cubeOf(8); // Just a random number
tv1.setText(String.valueOf(a));
new
一个MyOperations
)