Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.l16426434:acra:acra-4.5.0'
}
dependencies {
implementation("com.github.l16426434:acra:acra-4.5.0")
}
<dependency>
<groupId>com.github.l16426434</groupId>
<artifactId>acra</artifactId>
<version>acra-4.5.0</version>
</dependency>
libraryDependencies += "com.github.l16426434" % "acra" % "acra-4.5.0"
:dependencies [[com.github.l16426434/acra "acra-4.5.0"]]
In order to focus future developments on what is really important to you, please take this survey!
You can view the survey results here.
<a href="https://plus.google.com/118444843928759726538" rel="publisher">Follow ACRA on Google+ for latest news and tips.</a>
ACRA is a library enabling Android Application to automatically post their crash reports to a GoogleDoc form. It is targetted to android applications developers to help them get data from their applications when they crash or behave erroneously.
See BasicSetup for a step-by-step installation and usage guide.
A crash reporting feature for android apps is native since Android 2.2 (FroYo) but only available through the official Android Market (and with limited data). ACRA is a great help for Android developers :
ACRA's notification systems are clean. If a crash occurs, your application does not add user notifications over existing system's crash notifications or reporting features. If you use the Toast, Status bar notification or direct dialog modes, the "force close" dialog is not displayed anymore and devices where the system native reporting feature is enabled do not offer the user to send an additional report.
The user is notified of an error only once, and you might enhance the percieved quality of your application by defining your own texts in the notifications/dialogs.
Please do not hesitate to open defects/enhancements requests in the issue tracker.
For a complete changelog, please see the ChangeLog page in the Wiki.
ACRA 4.5.0 is now the official stable version.
https://oss.sonatype.org/content/groups/public/ch/acra/acra/4.5.0/acra-4.5.0.zip (also available in Maven Central repository)
The summarized changelog is here: https://github.com/ACRA/acra/wiki/ChangeLog
Included in this release (summarized summary):
ACRAConfig.setHttpHeaders()
The most important part of this release is to enable the usage of Acralyzer (http://github.com/ACRA/acralyzer) which will be the default backend in future release.
Next release will be 5.0 with important changes in mind:
New ideas about the project are always welcome, you can open feature requests in the Github issue tracker.
ACRA has been named in this report as a potential cause of SSL vulnerability for all android apps using it.
The truth is that, in order to let devs use alternative backends over an SSL connection with self-signed certificates, I chose to disable certificate validation in earlier versions of the lib. But this was done only on the scope of ACRA reports senders. Using ACRA did not imply that your app became unsafe for all its SSL communications.
Prior to ACRA v4.4.0, reports content were indeed vulnerable to a man in the middle attack. There "can" be some private data in there, but there are really few by default.
ACRA v4.4.0 has been modified to use SSL certificate validation by default. If you send your reports to your own server via SSL with a self-signed certificate, you have to set the option disableSSLCertValidation
to true
(annotation or dynamic config).
After 15 months of great service and more than 11700 downloads, it's time for v4.2.3 to bow out and live a new life among the deprecated releases.
Here's what's new in ACRA 4.3.0:
A more detailed description of the changes has been introduced in this Google+ post, based on the ChangeLog.
If you upgrade from 4.2.3, be aware that the default list of ReportFields has changed. You would better create a new spreadsheet & form with the help of the doc/CrashReports-Template.csv or use @ReportsCrashes(customReportContent={...})
to redefine your own list of fields.
Thanks a lot to everyone for testing during these 3 weeks of Beta (with special thanks to Nikolay Elenkov for his feedback on the dynamic configuration API), the 3 successive beta releases have reached 397 downloads on googlecode, not including Maven downloads. There has been very few reports during the Beta, a proof that you can rely on this new version even more than you could rely on the previous.
About Maven. ACRA is now available on Maven Central, with 4.2.3 and 4.3.0 stable releases available on the central repository. Just note these IDs: groupId ch.acra
artifactId acra
.
If you think there are missing parts in the documentation, please open an issue.
Kevin
You can read in the ChangeLog that many things have been added since ACRA 3.1. Here is a summary:
adb shell dumpsys meminfo <pid>
" command which gives details about your application memory usage right after the crash.formUri
parameter to send reports to your custom server script with POST parameters names not related to Google Forms naming. POST parameters will have easy to understand names.ACTION_SEND
intent so the user has to choose the email client he wants to use and then send the email containing report fields in the body). The list of report fields included is configurable. This allows to get rid of the INTERNET
permission in apps where it does not make any sense.READ_PHONE_STATE
permission is granted, reports include the Unique Device Identifier (IMEI). This can be really useful for enterprise applications deployment.Now that ACRA is stabilized on the device side (there shouldn't be much more data required...), the effort should be placed on crash data analysis and reports management tools for developers.
You can look at some contributions that have already been published. Most of them are work in progress, so if you feel like joining the effort, please do!
Acralyzer will soon be the official backend for reports storage and analysis. It is a free and open source modern web app, based on a full open stack and using advanced technology like CouchDB (JSON document storage with a RESTful API and Map/Reduce querying), AngularJS (one of the most advanced client-side JS frameworks), D3JS (for data visualisation)... If you are interested in webapps development, this project can become your playground too ;-)