我有三个Android项目: BaseLibProject , MainLibProject , AppProject 。
这三个Android项目的关系是:
BaseLibProject 是 MainLibProject 使用的库项目。
MainLibProject 使用 BaseLibProject 作为库项目,并生成 MainLib.jar (使用maven build)
< / LI>生成的 MainLib.jar 已添加到 AppProject 的libs/
文件夹&amp;还添加到 AppProject 的构建路径。
下一步:
BaseLibProject 中的简单类:
public class BaseLibClass {
public static String doBaseTask() {
Log.i("MyLog", "doBaseTask..."); //I can't see this log
return "Result from Base!";
}
}
MainLibProject 中定义函数的简单类调用 BaseLibProject 中的函数:
public class MainLibClass {
public static void doMainTask() {
Log.i("MyLog", "doMainTask..."); //I can see this log in logcat
String result = BaseLibClass.doBaseTask();
Log.i("MyLog", "result = " + result); //I can see the result log
}
}
最后,在我的 AppProject 中,我只需调用 MainLibProject 的上述功能(请记住我有 MainLib.jar ):
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MainLibClass.doMainTask();
}
}
我使用命令adb logcat -s MyLog:*
启动了 logcat 。当我运行AppProject应用程序时,logcat显示
I/MyLog(2039): doMainTask...
I/MyLog(2039): result = Result from Base!
根据上面的日志, BaseLibProject 中的代码正在运行(因为我得到了BaseLibClass的结果),但是没有显示来自 BaseLibProject的任何日志,为什么???
(我已经搜索过internect,有人通过重新启动eclipse修复了类似的问题,但在我的情况下,它没有帮助。此外,我正在检查来自终端的日志而不是来自eclipse。)
答案 0 :(得分:0)
好的,最后,我解决了这个问题。
原因是在BaseLibProject pom.xml中,我定义了<packaging>apk</packaging>
,而在MainLibProject pom.xml中,当我定义BaseLibProject的依赖关系时,我没有指定<type>
的神器。
我将BaseLibProject的pom.xml更改为<packagin>apklib</packaging>
后,在MainLibProject的pom.xml中指定了BaseLibProject与<type>apklib</type>
的依赖关系。我能够在BaseLibProject中看到日志。