Crittercism没有使用单独的进程在android服务上工作

时间:2015-07-02 11:57:39

标签: android crittercism

我有一个应用程序,它在单独的进程中启动android服务。这意味着两个进程正在运行。一个是我的主要应用程序,另一个是服务。

现在我尝试通过以下方法集成crittercism(它是移动应用程序性能管理工具),但它无法生成服务崩溃日志。

  1. 仅在应用中集成生产主义。

    结果:它仅为应用生成崩溃日志,而不是为服务生成崩溃日志。

  2. onCreate()方法中整合服务中的生产主义。

    结果:它没有显示崩溃日志,也没有显示实时统计信息中的应用加载。

  3. 在应用和服务中整合生产力。

    结果:它仅为应用生成崩溃日志而不是服务。

  4. 那么如何获取Android服务的崩溃日志?

    以下是我实施的代码:

    MainApplication.java

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
    
        Crittercism.initialize(getApplicationContext(), "CRITTERCISM_APP_ID");
    }
    

    MyService.java

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
    
        Crittercism.initialize(getApplicationContext(), "CRITTERCISM_APP_ID"); // Same app id which is used for MainApplication.java
    }
    
    服务和主要应用程序的

    build.gradle 文件:

    dependencies {
        compile 'com.crittercism:crittercism-android-agent:5.0.6'
    }
    

    还在服务和主要应用程序的以下权限下添加

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    

1 个答案:

答案 0 :(得分:4)

我得到了Crittercism社区的回复,下面是他们的答复:

The crashes cannot be captured in a remote service and because its Android issue. We also do not count app loads in remote services but other data is collected: HE, Network, etc. Crittercism counts actual app loads only.

One possible work around is to manually wrap all of the top level methods in the service in a try/catch block. In the catch block, use Crittercism.logHandledException.

Here's an example:

try {
customersTopLevelMethod();
} catch (Throwable t) {
Crittercism.logHandledException(t);

// You probably want to rethrow the exception since the service will now
// be in an invalid state.
throw t;
}

以下是链接 - http://community.crittercism.com/questions/1210/crittercism-not-working-on-android-service-with-se.html#answer-1217