在我的特殊情况下,logcat不显示来自库项目的日志

时间:2014-07-21 13:18:12

标签: android performance logcat android-logcat library-project

我有三个Android项目: BaseLibProject MainLibProject AppProject

这三个Android项目的关系是:

  1. BaseLibProject MainLibProject 使用的库项目。

  2. MainLibProject 使用 BaseLibProject 作为库项目,并生成 MainLib.jar (使用maven build)

    < / LI>
  3. 生成的 MainLib.jar 已添加到 AppProject libs/文件夹&amp;还添加到 AppProject 的构建路径。

  4. 下一步:

    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。)

1 个答案:

答案 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中看到日志。