我有三个android项目:baselibproject、mainlibproject和appproject。
这三个android项目的关系是:
baselibproject是mainlibproject使用的库项目。
mainlib project使用baselibproject作为库项目,并生成mainlib.jar(使用maven build)
生成的mainlib.jar被添加到appproject的libs/文件夹中,也被添加到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中的任何日志,为什么????
(我在互联网上搜索了一下,有人通过重启eclipse解决了类似的问题,但对我来说,这没用。另外,我检查的是终端的日志,而不是eclipse的日志。)

最佳答案

好吧,最后,我解决了这个问题。
原因是在baselibproject pom.xml中,我定义了<packaging>apk</packaging>,而在mainlibproject pom.xml中,当我定义baselibproject的依赖项时,我没有指定工件的<type>
在我将baselibproject的pom.xml更改为<packagin>apklib</packaging>之后,在mainlibproject的pom.xml中用<type>apklib</type>指定了baselibproject的依赖项。我可以看到baselibproject中的日志。

07-26 07:34