java - Android - Acra 不报告

标签 java android acra

我尝试使用 ACRA 作为错误报告器,我将 acra-4.6.1.jar 添加到我的项目中并创建了此类

ReportApp.java

package org.qtproject.example.ourmessenger;

import org.acra.*;
import org.acra.annotation.*;
import org.qtproject.qt5.android.bindings.QtApplication;
import android.app.Application;



@ReportsCrashes(
    formUri = "http://######/#####/######/####.php",
    formUriBasicAuthLogin = "root",
    formUriBasicAuthPassword = "#######",
    mode = ReportingInteractionMode.TOAST,
    forceCloseDialogAfterToast = false, 
    resToastText = R.string.crash_toast_text
    )
public class ReportApp extends Application  {

    @Override
    public void onCreate() {
        super.onCreate();

        ACRA.init(this);
    }
}

然后,我在 AndroidManifest 上编辑了我的 android:name:

AndoridManifest.xml

<application android:hardwareAccelerated="true" android:name="org.qtproject.example.ourmessenger.ReportApp" android:label="@string/app_name" android:icon="@drawable/icon">

我还在 AndroidManifest.xml 的末尾添加了这一行 </manifest> 之前:

 <CheckBoxPreference android:key="acra.enable" android:title="@string/pref_enable_acra" android:summaryOn="@string/pref_acra_enabled" android:summaryOff="@string/pref_acra_disabled" android:defaultValue="true"/>

我用这个

String i=null;
i.contains("kj");

用于测试 ACRA。事实上这是行不通的。我没有向 mainActivity 添加任何内容。

MainActivity.java

 .
 .
public class MainActivity extends QtActivity implements SensorEventListener
{
    .
    .
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        Context context = getApplicationContext();
        SharedPreferences appPref = getSharedPreferences("isFirstRun", 0);
        boolean isFirstRun = appPref.getBoolean("isFirstRun", true);
        .
        .

    }
     .
     .
}

它不仅不显示任何 TOAST 消息,而且也不向服务器报告。有什么建议吗?

最佳答案

您需要在 @ReportsCrashes 中提及您的目标服务的请求类型。对于您的 formUri = "http://######/######/######/####.php" 服务,本质上是 POST或 PUT 服务,在 @ReportsCrashes block 中添加 httpMethod = org.acra.sender.HttpSender.Method.POSThttpMethod = org.acra.sender.HttpSender.Method.PUT

请参阅doc了解更多详情。

关于java - Android - Acra 不报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33476633/

相关文章:

java - 新手 keytool 命令——如何更新已添加到 keystore 的证书?

java - ClientAbortException : java.net.SocketException:管道损坏

android - 应用程序崩溃并且没有报告对话框

java - Acra:如何从继承自 ReportSenderFactory 的自定义类中检索 token

Acra 不向我自己的服务器发送 JSON 请求

java - 从未使用过 Wicket 问题字段值

java - Selenium webdriver中的sessionID如何在并行执行期间为每个浏览器实例获取不同的值

android - 在 Android 中即时编辑位图

Android:故意不保存 EditText 中的空行

android - 在设备上使用 ACRA 清空 Logcat