HockeyApp was retired and the SDKs are deprecated. Please use App Center instead.

Overview

Slack Status

Version 5.2.0

HockeySDK-Android implements support for using HockeyApp in your Android applications.

The following features are currently supported:

  1. Crash Reporting: If your app crashes, a crash log is written to the device's storage. If the user starts the app again, they will be asked to submit the crash report to HockeyApp. This works for both beta and live apps, i.e. those submitted to Google Play or other app stores. Crash logs contain viable information for you to help resolve the issue. Furthermore, you as a developer can add additional information to the report as well.

  2. User Metrics: Understand user behavior to improve your app. Track usage through daily and monthly active users, monitor crash impacted users, as well as customer engagement through session count.

  3. Update alpha/beta apps: The app will check with HockeyApp if a new version for your alpha/beta build is available. If yes, it will show a dialog to users and let them see the release notes, the version history and start the installation process right away. You can even force the installation of certain updates.

  4. Feedback: Besides crash reports, collecting feedback from your users from within your app is a great option to help with improving your app. You act on and answer feedback directly from the HockeyApp backend.

  5. Authenticate: To help you stay in control of closed tester groups you can identify and authenticate users against your registered testers with the HockeyApp backend.

1. Setup

It is super easy to use HockeyApp in your Android app. Have a look at our documentation and onboard your app within minutes.

2. Documentation

Please visit our landing page as a starting point for all of our documentation.

Please check out our getting started documentation, change log, java doc as well as our troubleshooting section.

3. Contributing

We're looking forward to your contributions via pull requests to our repo on GitHub.

3.1 Development environment

  • We are using Macs ourselves, but any OS should work.
  • The latest stable release of Android Studio

3.2 Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

3.3 Contributor License

You must sign a Contributor License Agreement before submitting your pull request. To complete the Contributor License Agreement (CLA), you will need to submit a request via the form and then electronically sign the CLA when you receive the email containing the link to the document. You need to sign the CLA only once to cover submission to any Microsoft OSS project.

4. Contact

If you have further questions or are running into trouble that cannot be resolved by any of the steps in our troubleshooting section, feel free to open an issue here, contact us at [email protected] or join our Slack.

Comments
  • Weird error log on logcat relating to updates in hockey sdk

    Weird error log on logcat relating to updates in hockey sdk

    12-21 18:33:14.310 3389-3430/com.myapp E/HockeyUpdate: Could not fetch updates although connected to internet
                                                                      java.io.InterruptedIOException: thread interrupted
                                                                          at com.android.okhttp.okio.Timeout.throwIfReached(Timeout.java:145)
                                                                          at com.android.okhttp.okio.Okio$1.write(Okio.java:78)
                                                                          at com.android.okhttp.okio.AsyncTimeout$1.write(AsyncTimeout.java:155)
                                                                          at com.android.okhttp.okio.RealBufferedSink.flush(RealBufferedSink.java:221)
                                                                          at com.android.okhttp.internal.http.HttpConnection.flush(HttpConnection.java:141)
                                                                          at com.android.okhttp.internal.http.HttpTransport.finishRequest(HttpTransport.java:60)
                                                                          at com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:1147)
                                                                          at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:980)
                                                                          at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:482)
                                                                          at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:418)
                                                                          at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:235)
                                                                          at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)
                                                                          at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25)
                                                                          at net.hockeyapp.android.tasks.CheckUpdateTask.doInBackground(CheckUpdateTask.java:112)
                                                                          at net.hockeyapp.android.tasks.CheckUpdateTask.doInBackground(CheckUpdateTask.java:38)
                                                                          at android.os.AsyncTask$2.call(AsyncTask.java:295)
                                                                          at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                                                          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                                                          at java.lang.Thread.run(Thread.java:818)
    
    opened by jojonarte 23
  • can't find referenced class org.apache.http.*

    can't find referenced class org.apache.http.*

    With Android M / 6 the Apache HTTP stuff is gone but the SDK uses it a lot.

    It can be fixed with

    android {
        useLibrary 'org.apache.http.legacy'
    }
    

    but I prefer a cleaner way without dependencies to a deprecated lib :-)

    Warning: net.hockeyapp.android.CrashManager: can't find referenced class org.apache.http.impl.client.DefaultHttpClient
    Warning: net.hockeyapp.android.CrashManager: can't find referenced class org.apache.http.client.methods.HttpPost
    Warning: net.hockeyapp.android.CrashManager: can't find referenced class org.apache.http.client.methods.HttpPost
    Warning: net.hockeyapp.android.CrashManager: can't find referenced class org.apache.http.message.BasicNameValuePair
    Warning: net.hockeyapp.android.CrashManager: can't find referenced class org.apache.http.message.BasicNameValuePair
    Warning: net.hockeyapp.android.CrashManager: can't find referenced class org.apache.http.client.entity.UrlEncodedFormEntity
    Warning: net.hockeyapp.android.CrashManager: can't find referenced class org.apache.http.protocol.HTTP
    Warning: net.hockeyapp.android.CrashManager: can't find referenced class org.apache.http.client.entity.UrlEncodedFormEntity
    Warning: net.hockeyapp.android.CrashManager: can't find referenced class org.apache.http.client.methods.HttpPost
    Warning: net.hockeyapp.android.CrashManager: can't find referenced class org.apache.http.impl.client.DefaultHttpClient
    Warning: net.hockeyapp.android.CrashManager: can't find referenced class org.apache.http.impl.client.DefaultHttpClient
    Warning: net.hockeyapp.android.CrashManager: can't find referenced class org.apache.http.client.methods.HttpPost
    Warning: net.hockeyapp.android.CrashManager: can't find referenced class org.apache.http.NameValuePair
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.HttpResponse
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.util.EntityUtils
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.ClientProtocolException
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.ClientProtocolException
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.message.BasicNameValuePair
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.message.BasicNameValuePair
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.entity.UrlEncodedFormEntity
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.entity.UrlEncodedFormEntity
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.protocol.HTTP
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.entity.UrlEncodedFormEntity
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.methods.HttpPost
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.methods.HttpPost
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.methods.HttpPost
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.methods.HttpPost
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.methods.HttpGet
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.methods.HttpGet
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.HttpResponse
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.util.EntityUtils
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.HttpEntity
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.methods.HttpUriRequest
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.HttpResponse
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.ClientProtocolException
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.methods.HttpUriRequest
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.entity.UrlEncodedFormEntity
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.methods.HttpPost
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.methods.HttpPost
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.methods.HttpGet
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.NameValuePair
    Warning: net.hockeyapp.android.tasks.LoginTask: can't find referenced class org.apache.http.client.methods.HttpUriRequest
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.message.BasicNameValuePair
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.message.BasicNameValuePair
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.entity.UrlEncodedFormEntity
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.entity.UrlEncodedFormEntity
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.protocol.HTTP
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.entity.UrlEncodedFormEntity
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.methods.HttpPut
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.methods.HttpPut
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.methods.HttpPost
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.methods.HttpPost
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.methods.HttpPut
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.methods.HttpPost
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.HttpResponse
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.util.EntityUtils
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.HttpResponse
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.StatusLine
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.ClientProtocolException
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.ClientProtocolException
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.NameValuePair
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.NameValuePair
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.NameValuePair
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.methods.HttpPut
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.methods.HttpPost
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.methods.HttpGet
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.methods.HttpGet
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.HttpResponse
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.util.EntityUtils
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.StatusLine
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.HttpEntity
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.entity.UrlEncodedFormEntity
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.methods.HttpPost
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.methods.HttpPut
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.HttpResponse
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.ClientProtocolException
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.NameValuePair
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.NameValuePair
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.HttpEntity
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.methods.HttpPost
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.methods.HttpPut
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.HttpResponse
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.ClientProtocolException
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.NameValuePair
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.HttpResponse
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.HttpEntity
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.ClientProtocolException
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.methods.HttpGet
    Warning: net.hockeyapp.android.tasks.SendFeedbackTask: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.params.BasicHttpParams
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.params.BasicHttpParams
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.HttpVersion
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.params.HttpProtocolParams
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.params.HttpProtocolParams
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.params.CoreProtocolPNames
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.conn.scheme.SchemeRegistry
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.conn.scheme.SchemeRegistry
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.conn.scheme.Scheme
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.conn.scheme.PlainSocketFactory
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.conn.scheme.Scheme
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.conn.scheme.SchemeRegistry
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.impl.client.DefaultHttpClient
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.impl.client.DefaultHttpClient
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.HttpVersion
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.params.HttpProtocolParams
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.conn.scheme.PlainSocketFactory
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.conn.scheme.SchemeRegistry
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager
    Warning: net.hockeyapp.android.utils.ConnectionManager: can't find referenced class org.apache.http.client.HttpClient
    Warning: net.hockeyapp.android.utils.SimpleMultipartEntity: can't find referenced class org.apache.http.message.BasicHeader
    Warning: net.hockeyapp.android.utils.SimpleMultipartEntity: can't find referenced class org.apache.http.message.BasicHeader
    Warning: net.hockeyapp.android.utils.SimpleMultipartEntity: can't find referenced class org.apache.http.HttpEntity
    Warning: net.hockeyapp.android.utils.SimpleMultipartEntity: can't find referenced class org.apache.http.Header
    Warning: net.hockeyapp.android.utils.SimpleMultipartEntity: can't find referenced class org.apache.http.Header
    
    opened by the4thfloor 17
  • No update available on android 5.0.2 Sony Xperia Z1 Compact D5503

    No update available on android 5.0.2 Sony Xperia Z1 Compact D5503

    Hi Guys, I am trying to understand why my production app neither see updates or able to send feedbacks via the hockeapp sdk. This happen only on a Sony Xperia Z1 Compact D5503 device with Android 5.0.2.

    On other tests devices (samsung, lg, motorola) with various android versions (from 6 to 9go) and with the same production app then it works just fine.

    Is there any known bug related to the sony manufacturer or android 5.0.2 which prevent the hockeyapp sdk to work properly?

    support 
    opened by AntonioCappiello 16
  • Program type already present : net.hockeyapp.android.CrashManager$1

    Program type already present : net.hockeyapp.android.CrashManager$1

    Getting

    com.android.build.api.transform.TransformException: Error while generating the main dex list.

    caused by com.android.builder.multidex.D8MainDexList$MainDexListException: com.android.tools.r8.errors.CompilationError: Program type already present : net.hockeyapp.android.CrashManager$1

    caused by: com.android.tools.r8.errors.CompilationError: Program type already present: net.hockeyapp.android.CrashManager$1 at com.android.tools.r8.utils.ProgramClassCollection.resolveClassConflictImpl(ProgramClassCollection.java:64) at com.android.tools.r8.utils.ProgramClassCollection.lambda$create$0(ProgramClassCollection.java:25) at com.android.tools.r8.utils.ProgramClassCollection.create(ProgramClassCollection.java:24) at com.android.tools.r8.graph.LazyLoadedDexApplication$Builder.build(LazyLoadedDexApplication.java:124) at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:123) at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:86) at com.android.tools.r8.GenerateMainDexList.run(GenerateMainDexList.java:40) at com.android.tools.r8.GenerateMainDexList.run(GenerateMainDexList.java:110) at com.android.builder.multidex.D8MainDexList.generate(D8MainDexList.java:83)

    Gradle details:

    Gradle version 3.2.1 distributionUrl=https://services.gradle.org/distributions/gradle-4.6-all.zip debugCompile files('debug-libs/HockeySDK-3.5.0.jar')

    getting following error if used implementation 'net.hockeyapp.android:HockeySDK:5.1.1'

    Caused by: com.android.tools.r8.errors.CompilationError: Program type already present: net.hockeyapp.android.adapters.MessagesAdapter at com.android.tools.r8.utils.ProgramClassCollection.resolveClassConflictImpl(ProgramClassCollection.java:64) at com.android.tools.r8.utils.ProgramClassCollection.lambda$create$0(ProgramClassCollection.java:25) at com.android.tools.r8.utils.ProgramClassCollection.create(ProgramClassCollection.java:24) at com.android.tools.r8.graph.LazyLoadedDexApplication$Builder.build(LazyLoadedDexApplication.java:124) at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:123) at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:86) at com.android.tools.r8.GenerateMainDexList.run(GenerateMainDexList.java:40)

    opened by codeByAvi 15
  • Android Q support

    Android Q support

    We are using HockeyApp SDK version 5.1.0 and when upgrading app we encounter following error on devices running Android Q beta 5.

    Is there additional items one needs to include in AndroidManifest, we noticed this issue in Android Q beta 5 didn't see this in Android Q beta 3

    android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.INSTALL_PACKAGE dat=file:///storage/emulated/0/Android/data/XXXXXX/files/Download/fa9498a9-683e-4da5-992e-4072627628e4.apk typ=application/vnd.android.package-archive flg=0x10000000 } at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2051) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1709) at android.app.Activity.startActivityForResult(Activity.java:5192) at android.app.Activity.startActivityForResult(Activity.java:5150) at android.app.Activity.startActivity(Activity.java:5521) at android.app.Activity.startActivity(Activity.java:5489) at net.hockeyapp.android.tasks.DownloadFileTask.onPostExecute(DownloadFileTask.java:206) at net.hockeyapp.android.tasks.DownloadFileTask.onPostExecute(DownloadFileTask.java:37) at android.os.AsyncTask.finish(AsyncTask.java:755) at android.os.AsyncTask.access$900(AsyncTask.java:192) at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:772) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7343) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:933)

    feature request 
    opened by snijsure 14
  • Transmission Failed

    Transmission Failed

    Since upgrading to version 3.6.2, hockeyapp seems to fail transmission quite often. We are missing crash logs for much of yesterday (11/12/15). Has there been server issue, or is there something wrong with this new version of the Android SDK?

    11-13 09:29:59.502 D/HockeyApp: Date: Fri Nov 13 07:42:39 PST 2015 11-13 09:30:01.826 D/HockeyApp: Transmission failed, will retry on next register() call 11-13 09:30:01.881 D/HockeyApp: Transmitting crash data: 11-13 09:30:01.881 D/HockeyApp: Package: XXXX.XXXX.XXXX 11-13 09:30:01.881 D/HockeyApp: Version Code: XXXXX 11-13 09:30:01.881 D/HockeyApp: Version Name: XXX 11-13 09:30:01.881 D/HockeyApp: Android: 5.1.1 11-13 09:30:01.881 D/HockeyApp: Manufacturer: LGE 11-13 09:30:01.881 D/HockeyApp: Model: Nexus 5

    opened by caltseng 14
  • WRITE_EXTERNAL_STORAGE permission is removed by HockeyApp

    WRITE_EXTERNAL_STORAGE permission is removed by HockeyApp

    The HockeyApp SDK sets an android:maxSdkVersion="18" attribute on the WRITE_EXTERNAL_STORAGE permission in its AndroidManifest, which removes the permission on higher API levels. I don't know why this attribute is there, but it is causing problems in our app.

    Example: Our app uses LeakCanary and Spoon, both of which require this permission to work correctly. Even though we put the <uses-permission> tag in our debug AndroidManifest, these tools always fail. Apparently the merged manifest also contains the android:maxSdkVersion attribute. These kind of hidden attributes are very difficult to discover. I actually thought it was some new security policy in Android that was causing LeakCanary to fail.

    Is it possible to remove the attribute from the SDK, and leave the permissions up to the end user? Perhaps HockeyApp can print a warning in the Logs or a show Toast if the permission is missing.

    opened by smuldr 13
  • Crash on 5.0.0

    Crash on 5.0.0

    java.lang.RuntimeException: Unable to destroy activity XXX}: java.lang.IllegalArgumentException: App ID must not be null. at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4634) at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4661) at android.app.ActivityThread.-wrap7(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1703) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6776) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) Caused by: java.lang.IllegalArgumentException: App ID must not be null. at net.hockeyapp.android.utils.Util.sanitizeAppIdentifier(Util.java:109) at net.hockeyapp.android.CrashManager.initialize(CrashManager.java:553) at net.hockeyapp.android.CrashManager.initialize(CrashManager.java:167) at ru.mail.intranet.ui.launcher.LauncherActivity.onDestroy(LauncherActivity.java:113) at android.app.Activity.performDestroy(Activity.java:7220) at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1161) at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4621) ... 9 more

    opened by yuriy-budiyev 13
  • Make CrashManagerListener an Interface

    Make CrashManagerListener an Interface

    Sorry if this was discussed elsewhere, a brief glance through the issues didn't make it appear to be the case.

    CrashManagerListener is passed as a third parameter callback param in the initialize function. In some cases where I want to implement that sort of item, I'll use the current this context to do so. However, because I'm in an Activity, and the CrashManagerListener is not an interface, I can't do that. I understand the idea of it being abstract to allow for optional methods, but it makes it impossible for you to do anything besides subclass. Ultimately you end up making a throwaway class for the sake of that one method.

    Not sure what your opinions on this will be, but I think it's worth putting out there as a discussion item.

    enhancement question wontfix 
    opened by shortstuffsushi 13
  • Build a .aar

    Build a .aar

    Android is moving to gradle as the build system. In the process they introduced a new format for library packages, .aar. Typically gradle pulls these from maven-central.

    HockeySDK-Android should have an .aar on maven-central to easily integrate with gradle-based projects (such as ours ;-)

    opened by jobi 13
  • maxSdkVersion of WRITE_EXTERNAL_STORAGE permission gets overwritten

    maxSdkVersion of WRITE_EXTERNAL_STORAGE permission gets overwritten

    Hockeyapp sdk 5 sets maxSdkVersion of WRITE_EXTERNAL_STORAGE permission for the Project.

    I just updated an app to Android 8 an in that process updated the hockeyapp sdk. This lead to a hell of a bug chase because suddenly part of the app, requiring a storage write permission, didn't work anymore. Well hours later I now know it was not the android update but changes to the hockeyapp sdk, specifically this commit: https://github.com/bitstadium/HockeySDK-Android/commit/8d24cc936fb5338d2c8d24f1e980bcd40a30b887 The permission in my apps' manifest looked like this: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> This line turns into this one after building the apk: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" /> This resulted in the apps requests for write access to be categorically denied :P The "solution" for me was to change my permission declaration to overwrite the maxsdkversion: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="26" tools:replace="android:maxSdkVersion"/>

    opened by wlky 11
Releases(5.2.0)
  • 5.2.0(May 21, 2019)

    This is a maintenance release for the SDK. It contains important bugfixes.

    • [Bugfix] #411 – Leaking HTTP connection. PR #412
    • [Bugfix] – Fix HTTPS connection creation. PR #424
    • [Security] To enforce TLS 1.2 on all HTTPS connections the SDK makes, we are dropping support for API level 15 (which supports only TLS 1.0), the minimum SDK version thus becomes 16. Previous versions of the SDK were already using TLS 1.2 on API level 16+.

    Breaking changes in version 5.2.0

    HockeySDK 5.2.0 raises the minimum API level to 16.

    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-5.2.0.zip(650.18 KB)
  • 5.1.1(Aug 27, 2018)

    This is a maintenance release for the SDK. It contains important bugfixes, including some that make the SDK compatible with Android Pie.

    • [Bugfix] #395 – NullPointerException in DownloadFileTask. PR #396
    • [Bugfix] #391 - FileNotFoundException when attaching an image to feedback. PR #393
    • [Bugfix] #377 - Prevent OutOfMemoryError in case of reading/sending crash reports with very long stacktraces. #PR 378 PR #392
    • [Bugfix] #385 - Fix "untagged socket" violation in strict mode of Android O PR #387
    • [Bugfix] Fix the error message that gets logged by the SDK to logcat in case a saved stacktrace is empty. PR #375
    • [Bugfix] #369 - Adjust timeout interval for a http connection. PR #370
    • [Bugfix] Fix a glitch in the feedback UI. PR #353
    • [Bugfix] Fix multiple causes for deadlocks. PR #348
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-5.1.1.zip(662.71 KB)
  • 5.1.0(Jan 11, 2018)

    • [Bugfix] Fix issue in persistence logic that could cause Session information to be inaccurate. #340
    • [Improvement] Remove left-to-right attribute in case the app that integrates the SDK doesn't use that. Thx to Steven for this contribution. #335
    • [Improvement] Improve error message for the Feedback feature. #341
    • [Improvement] It's now possible to call setUserId for Feedback. #339

    Breaking changes in version 5.0.0

    HockeySDK 5.0.0 raises the minimum API level to 15. In addition, we no longer support restricting builds by device id. The reason is that, with Android O, ANDROID_ID no longer ensures a consistent way of identification of a user.

    To be ready for Android O, HockeySDK-Android now limits the WRITE_EXTERNAL_STORAGE permission with the maxSdkVersion filter. In some use cases, e.g. where an app contains a dependency that requires this permission, maxSdkVersion makes it impossible for those dependencies to grant or request the permission. The solution for those cases is to declare the tools:node="replace" manifest merging strategy later in the dependency tree:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace"/>

    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-5.1.0.zip(655.91 KB)
  • 5.0.4(Nov 21, 2017)

    This version contains a few bugfixes as well as the removal of an API that has been deprecated since HockeySDK 3.7.0-Beta.2.

    • Removal of deprecated API ExceptionHandler.saveException(Throwable exception, CrashManagerListener listener) has been deprecated since 3.7.0-beta.2. Use ExceptionHandler.saveException(Throwable exception, Thread thread, CrashManagerListener listener) instead. #317
    • Bugfix The SDK now deletes redundant crash reports. #318
    • Bugfix The SDK does no longer send the event that indicates the start of a session twice but once. There was no impact on session counts as the event was de-duplicated on the server. #321
    • Bugfix Fixes a potential deadlock when reading device information when saving an exception. #323
    • Bugfix Fixes a potential NPE when processing stacktraces. Thanks to Thomas Reis for reporting issue #331. #332

    Breaking changes in version 5.0.0

    HockeySDK 5.0.0 raises the minimum API level to 15. In addition, we no longer support restricting builds by device id. The reason is that, with Android O, ANDROID_ID no longer ensures a consistent way of identification of a user.

    To be ready for Android O, HockeySDK-Android now limits the WRITE_EXTERNAL_STORAGE permission with the maxSdkVersion filter. In some use cases, e.g. where an app contains a dependency that requires this permission, maxSdkVersion makes it impossible for those dependencies to grant or request the permission. The solution for those cases is to declare the tools:node="replace" manifest merging strategy later in the dependency tree:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace"/>

    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-5.0.4.zip(649.74 KB)
  • 5.0.3(Oct 3, 2017)

    This release now limits the number of crashes that are stored by the SDK while the device is offline to 100 Crashes. HockeySDK-Android will stop to collect crashes until the number of unsent crashes drops below the limit of 100 unsent crashes.

    • [BUGFIX] Fixes a possible OutOfMemoryError exception. This only occurs when a very large number of crashes – several 100k or more – wasn't sent to the server. #313

    Breaking changes in version 5.0.0

    HockeySDK 5.0.0 raises the minimum API level to 15. In addition, we no longer support restricting builds by device id. The reason is that, with Android O, ANDROID_ID no longer ensures a consistent way of identification of a user.

    To be ready for Android O, HockeySDK-Android now limits the WRITE_EXTERNAL_STORAGE permission with the maxSdkVersion filter. In some use cases, e.g. where an app contains a dependency that requires this permission, maxSdkVersion makes it impossible for those dependencies to grant or request the permission. The solution for those cases is to declare the tools:node="replace" manifest merging strategy later in the dependency tree:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace"/>

    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-5.0.3.zip(660.22 KB)
  • 5.0.2(Sep 26, 2017)

    • [Bugfix] Fixes a NPE in FeedbackActivity. #303
    • [Bugfix] Fixes a potential deadlock in CrashManager.#308
    • [Improvement] Fix potential NPE when calling MetricsManager.sessionTrackingEnabled() before calling MetricsManager.register(...). #310

    Thx to Mourat and Jarred for their contributions!

    Breaking changes in version 5.0.0

    HockeySDK 5.0.0 raises the minimum API level to 15. In addition, we no longer support restricting builds by device id. The reason is that, with Android O, ANDROID_ID no longer ensures a consistent way of identification of a user.

    To be ready for Android O, HockeySDK-Android now limits the WRITE_EXTERNAL_STORAGE permission with the maxSdkVersion filter. In some use cases, e.g. where an app contains a dependency that requires this permission, maxSdkVersion makes it impossible for those dependencies to grant or request the permission. The solution for those cases is to declare the tools:node="replace" manifest merging strategy later in the dependency tree:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace"/>

    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-5.0.2.zip(649.94 KB)
  • 5.0.1(Sep 15, 2017)

    • [BUGFIX] Fix a bug in the Italian translation. #296
    • [IMPROVEMENT] Use different timestamp format for crash date and app start time. #297

    Breaking changes in version 5.0.0

    HockeySDK 5.0.0 raises the minimum API level to 15. In addition, we no longer support restricting builds by device id. The reason is that, with Android O, ANDROID_ID no longer ensures a consistent way of identification of a user.

    To be ready for Android O, HockeySDK-Android now limits the WRITE_EXTERNAL_STORAGE permission with the maxSdkVersion filter. In some use cases, e.g. where an app contains a dependency that requires this permission, maxSdkVersion makes it impossible for those dependencies to grant or request the permission. The solution for those cases is to declare the tools:node="replace" manifest merging strategy later in the dependency tree:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace"/>

    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-5.0.1.zip(650.34 KB)
  • 5.0.0(Sep 1, 2017)

    Changes since 5.0.0-beta.1

    • [BUGFIX] It's no longer possible to circumvent the login UI by pressing the backbutton under certain circumstances #278.
    • [BUGFIX] Fix a crash in MetricsManager #279.
    • [BUGFIX] Fix authentication by email #288.
    • [BUGFIX] Fix a regression that was introduced in 5.0.0-beta.1 that prevented attaching screenshots to work #289.
    • [BUGFIX] Fix Feedback notifications on Android #290.
    • [IMPROVEMENT] Add the ability to when to show the UpdateFragment #280.
    • [IMPROVEMENT] CrashManagerListener now has onNoCrashesFound() to notify you in case no new crashes were found #280.
    • [IMPROVEMENT] Retrieving the last crash details is now asynchronous.
    • [DEPRECATION] We've removed the onCrashesFound callback in CrashManagerListener as it has been deprecated since HockeySDK 3.0.0.

    Breaking Changes

    This release comes with one major breaking change. HockeySDK 5.0.0 raises the minimum API level to 15. In addition, we no longer support restricting builds by device id. The reason is that, with Android O, ANDROID_ID no longer ensures a consistent way of identification of a user.

    To be ready for Android O, HockeySDK-Android now limits the WRITE_EXTERNAL_STORAGE permission with the maxSdkVersion filter. In some use cases, e.g. where an app contains a dependency that requires this permission, maxSdkVersion makes it impossible for those dependencies to grant or request the permission. The solution for those cases is to declare the tools:node="replace" manifest merging strategy later in the dependency tree:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace"/>

    Thx a lot to Lauri for notifying us.

    Full changelog

    In addition, this release contains the following changes:

    • [IMPROVEMENT] Support for Android O.
    • [IMPROVEMENT] Code scans no longer trigger warnings related to usage of ANDROID_ID as we are no longer using it.
    • [IMPROVEMENT] The SDK supports Android Strict Mode way better as it no longer violates it.
    • [IMPROVEMENT] We've improved the way we send Feedback attachments.
    • [IMPROVEMENT] The SDK no longer caches information about in-app updates to make sure updates are available immediately.
    • [IMPROVEMENT] Add the ability to when to show the UpdateFragment #280.
    • [IMPROVEMENT] Retrieving the last crash details is now asynchronous.
    • [BUGFIX] Metrics no longer leaks a connection.
    • [BUGFIX] It's no longer possible to circumvent the login UI by pressing the backbutton under certain circumstances #278.
    • [BUGFIX] Fix a crash in MetricsManager #279.
    • [BUGFIX] Fix authentication by email #288.
    • [BUGFIX] Fix a regression that was introduced in 5.0.0-beta.1 that prevented attaching screenshots to work #289.
    • [BUGFIX] Fix Feedback notifications on Android #290.
    • [IMPROVEMENT] Add the ability to when to show the UpdateFragment #280.
    • [IMPROVEMENT] CrashManagerListener now has onNoCrashesFound() to notify you in case no new crashes were found #280.
    • [DEPRECATION] We've removed the onCrashesFound callback in CrashManagerListener as it has been deprecated since HockeySDK 3.0.0.

    Updating the HockeySDK

    We didn't remove any API with this release. Just update to this version and you are good to go!

    Acknowledgments

    Thanks to @bmourat @MatkovIvan and @friederbluemle for their input and help! =)

    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-5.0.0.zip(644.84 KB)
  • 5.0.0-beta.1(Aug 3, 2017)

    Breaking Changes

    This release comes with one major breaking change. HockeySDK 5.0.0-beta.1 raises the minimum API level to 15. In addition, we no longer support restricting builds by device id. The reason is that, with Android O, ANDROID_ID no longer ensures a consistent way of identification of a user.

    To be ready for Android O, HockeySDK-Android now limits the WRITE_EXTERNAL_STORAGE permission with the maxSdkVersion filter. In some use cases, e.g. where an app contains a dependency that requires this permission, maxSdkVersion makes it impossible for those dependencies to grant or request the permission. The solution for those cases is to declare the tools:node="replace" manifest merging strategy later in the dependency tree:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace"/>

    Thx a lot to Lauri for notifying us.

    Changelog

    In addition, this release contains the following changes:

    • [IMPROVEMENT] Support for Android O.
    • [IMPROVEMENT] Code scans no longer trigger warnings related to usage of ANDROID_ID as we are no longer using it.
    • [IMPROVEMENT] The SDK supports Android Strict Mode way better as it no longer violates it.
    • [IMPROVEMENT] We've improved the way we send Feedback attachments.
    • [IMPROVEMENT] The SDK no longer caches information about in-app updates to make sure updates are available immediately. The iOS SDK has behaved like this for a while and we decided to align the behavior across SDKs.
    • [BUGFIX] Metrics no longer leaks a connection.

    Updating the HockeySDK

    We didn't remove any API with this release. Just update to this version and you're good to go!

    Acknowledgments

    Thanks to @bmourat @MatkovIvan and @friederbluemle for their input and help! =)

    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-5.0.0-beta.1.zip(641.01 KB)
  • 4.1.5(Jun 23, 2017)

    • [FIX] Fix a resource leak in Sender #235.
    • [FIX] Fix pissibility to bypass authentication #236.
    • [FIX] Fix the progressbar when sending feedback #237.
    • [FIX] Fix potential OOM crash by limiting the number of form fields in a request #238.
    • [FIX] Fix the dates in the Feedback UI #239.
    • [FIX] Fix ConcurrentModificationException in metrics feature #242.
    • [FIX] Fix potential crash related to multi-threading in Channel #248.
    • [FIX] Fix the focus in the Feedback UI, this also improves accessibility #249.
    • [IMPROVEMENT] When debugging, the SDK uses smaller batch sizes and timing intervals until metrics are sent to make debugging easier #231.
    • [IMPROVEMENT] Fix some strict mode violations #241.
    • [IMPROVEMENT] Improve accessibility for Feedback attachments #251. *[IMPROVEMENT] Send batched events when the app goes into background. #252.
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-4.1.5.zip(664.28 KB)
  • 4.1.4(Apr 27, 2017)

    • [FIX] Catch all kinds of exceptions when trying to obtain package information #214 thanks to Ivan Matkov and Jared Burrows.
    • [FIX] Make sure the SDK doesn't crash when the Internet permission has been revoked on rooted devices #196 thanks to Ivan Matkov and Stan Kocken.
    • [FIX] Make sure we handle all possible exceptions when checking for network connectivity #196 thanks to Ivan Matkov and Caleb Tseng.
    • [FIX] The onCrashesNotSent() callback is now triggered in case there is no network connection and the SDK tries to send a crash #223. Thanks to Max for fixing this.
    • [IMPROVEMENT] CrashManager and MetricsManager use the same versioning logic thanks to Murat Baysangurov.
    • [IMPROVEMENT] FeedbackActivity now uses accessibility labels thanks to Murat Baysangurov.
    • [IMPROVEMENT] CrashManager and FeedbackManager now have additional register() APIs that don't take the app identifier as a parameter #226 thanks to Matthias Wenz and Graham Mueller.
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-4.1.4.zip(661.71 KB)
  • 4.1.3(Mar 8, 2017)

    This release is our version of spring cleaning for the HockeyApp SDK. It comes with the following bugfixes:

    • [FIX] It was possible to send huge stack traces which could cause out-of-memory exceptions (e.g. when trying to send 100MB worth of stacktraces). Stacktraces are now limited to 4MB in size. #199
    • [FIX] Thanks to Stuart Eichert, the constructor for CrashDetails now contains more parameters to avoid an exception when calling writeCrashReport. #201
    • [FIX] Thanks to Ivan Matkov, it's no longer possible to avoid providing login information and circumvent authentication. #208
    • [FIX] Thanks to Guillaume Perrot, the google play store detection was fixed for emulators running Android Nougat. #209
    • [IMPROVEMENT] Thanks to Stuart Eichert, it's now possible to specify the path to customize where to write a crash report to. #203
    • [IMPROVEMENT] It's now possible to scroll within the FeedbackActivity while the keyboard is up. Previously, when providing a lot of feedback, the keyboard could hide the submit-button. #207
    • [IMPROVEMENT] In case the app is offline, the Update feature will no longer log the IOException to avoid confusion. #209
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-4.1.3.zip(660.84 KB)
  • 4.1.2(Dec 8, 2016)

    This is a maintenance release to our Android SDK which brings some important stability and behavioral fixes. It also introduces two new user contributed localizations and a few more changes:


    4.1.2

    • [FIXED] Fixed two NPEs (#185) and (#186) - thanks @jaredsburrows!
    • [FIXED] UpdateManagerListener is now notified if the user closes an update dialog by tapping outside it or using the back button (#168)
    • [NEW] Added user contributed localizations for Brazilian Portuguese (#159) and Italian (#170), thanks @Panthro and @giancarloromeo
    • [NEW] Added FeedbackManagerListener.shouldCreateNewFeedbackThread() which allows the creation of a new feedback thread at the developers discretion (#189) - thanks @brentwatson!
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-4.1.2.zip(658.78 KB)
  • 4.1.1(Sep 1, 2016)

    This maintenance release contains an important bugfix around Custom Events. With the 4.1 release are rolling out Custom Events to everybody, to understand user actions and see aggregates on the HockeyApp portal.

    If you haven't done it yet, add the setup code for the MetricsManager in your main activity's onCreate-callback like this:

    //add this import
    import net.hockeyapp.android.metrics.MetricsManager;
    
    //add this to your main activity's onCreate()-callback
    MetricsManager.register(getApplication());
    

    and add the Custom Event code like this:

    //add this wherever you want to track a custom event
    MetricsManager.trackEvent("YOUR_EVENT_NAME");
    

    Also, Custom Events now support custom properties and measurements as a preview, which can be viewed in the Application Insights portal.


    Apart from this, here's the full list of changes:

    4.1.1

    • [NEW] Custom Events are now a public feature
    • [NEW] Added user contributed localizations for Simplified Chinese (#163) and Russian (#152)
    • [FIXED] Installing an app through HockeyApp would falsely report this as a store installation on Android Nougat (#171)
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-4.1.1.zip(658.01 KB)
  • 4.1.0(Aug 30, 2016)

    This is the stable release for the 4.1.0 version of the SDK. With this release are rolling out Custom Events to everybody, to understand user actions and see aggregates on the HockeyApp portal.

    If you haven't done it yet, add the setup code for the MetricsManager in your main activity's onCreate-callback like this:

    //add this import
    import net.hockeyapp.android.metrics.MetricsManager;
    
    //add this to your main activity's onCreate()-callback
    MetricsManager.register(getApplication());
    

    and add the Custom Event code like this:

    //add this wherever you want to track a custom event
    MetricsManager.trackEvent("YOUR_EVENT_NAME");
    

    Also, Custom Events now support custom properties and measurements as a preview, which can be viewed in the Application Insights portal.


    Apart from this, here's the full list of changes:

    4.1.0

    • [NEW] Custom Events are now a public feature
    • [NEW] Added user contributed localizations for Simplified Chinese (#163) and Russian (#152)
    • [FIXED] Installing an app through HockeyApp would falsely report this as a store installation on Android Nougat (#171)
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-4.1.0.zip(655.70 KB)
  • 4.0.3(Aug 25, 2016)

  • 4.0.2(Jul 19, 2016)

  • 4.1.0-beta.2(May 19, 2016)

    The second beta on our way to 4.1.0 contains bug fixes to our telemetry module.


    Changelog:

    Version 4.1.0-beta.2

    • [BUGFIX] Fixed a bug which would result in rejected telemetry events.
    • [IMPROVEMENT] Raised log level for telemetry error responses.
    • [IMPROVEMENT] Enabled Dex In Process for faster build time.
    Source code(tar.gz)
    Source code(zip)
  • 4.0.1(May 4, 2016)

    This maintenance release contains important bug fixes which didn't make it into or were found after 4.0.0.

    With this release, our major new feature is User Metrics. If you're already using our SDK, it's as simple as upgrading to Version 4.0.1 of the SDK and add the following code:

    //add this import
    import net.hockeyapp.android.metrics.MetricsManager;
    
    //add this to your main activity's onCreate()-callback
    MetricsManager.register(this, getApplication());
    

    Please do note, that auto collection of users and sessions only works on Android API level 14 or higher.


    Changelog:

    Version 4.0.1

    • [BUGFIX] Fixed a bug in timestamp creation for User Metrics which would occur environments spanning many different timezones.
    • [BUGFIX] Fixed an issue with the anonymity of our identifiers which could occur if a device didn't support the SHA-256 message digest.
    • [BUGFIX] Fixed an issue with initial attachments in our feedback compose view, which would cause them to duplicate on device orientation changes.
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-4.0.1.zip(627.59 KB)
  • 4.1.0-beta.1(Apr 27, 2016)

    This is the first public release of our upcoming 4.1.0 SDK. It's major feature is the addition of Custom Events to the User Metrics feature that became publicly available with our 4.0.0 SDK.

    If you are part of Preseason, you can now track Custom Events in your app, understand user actions and see the aggregates on the HockeyApp portal.

    If you haven't done it, yet, add the setup code for the MetricsManager in your main activity's onCreate-callback like this:

    //add this import
    import net.hockeyapp.android.metrics.MetricsManager;
    
    //add this to your main activity's onCreate()-callback
    MetricsManager.register(this, getApplication());
    

    and add the Custom Event code like this:

    //add this wherever you want to track a custom event
    MetricsManager.trackEvent("YOUR_EVENT_NAME");
    

    Please do note, that this feature, like the other User Metrics features,Custom Events only work on Android API level 14 or higher.


    Apart from this, here's the list of other changes:

    4.1.0-beta.1

    • [NEW] Integrate HockeySDK 4.0.0
    • [NEW] Custom Events are now a public release but require to apply for Preseason

    4.1.0-alpha.2

    • [NEW] Add Custom Events
    • [NEW] Integrate HockeySDK 4.0.0-alpha.3
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-4.1.0-beta.1.zip(646.88 KB)
  • 4.0.0(Apr 27, 2016)

    This is the first release of the 4.0 line of our HockeySDK.

    With this release, our major new feature is User Metrics. If you're already using our SDK, it's as simple as upgrading to Version 4.0.0 of the SDK and add the following code:

    //add this import
    import net.hockeyapp.android.metrics.MetricsManager;
    
    //add this to your main activity's onCreate()-callback
    MetricsManager.register(this, getApplication());
    

    Please do note, that auto collection of users and sessions only works on Android API level 14 or higher.


    Apart from this, here's the list of other changes:

    Version 4.0.0

    • [UPDATE] Fix potential handler leaks in FeedbackActivity, LoginManager and LoginActivity
    • [UPDATE] Fix implied default locale for app size calculation
    • [BUGFIX] Fix bug in authorization logic that affected restricted builds. If you are using this HockeyApp's authentication feature, please read the article in our knowledgebase.

    Version 4.0.0-alpha.3

    • [UPDATE] Integrate HockeySDK 3.7.2
    • [BUGFIX] Fix issues with user metrics pre-ICS devices

    Version 4.0.0-alpha.2

    • [UPDATE] Integrate HockeySDK 3.7.1

    Version 4.0.0-alpha.1

    • [NEW] Add MetricsManager to enable user and session metrics.
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-4.0.0.zip(626.17 KB)
  • 4.0.0-beta.1(Mar 31, 2016)

  • 3.7.2(Mar 31, 2016)

    The second maintenance release for our Android SDK 3.7 line is available now. It includes fixes and improvements to our new ProGuard setup, as well as some minor bug fixes and we fixed some lint warnings as well. For details please check out the release notes below.

    • [IMPROVEMENT] Improved ProGuard configuration to minimize the footprint of the SDK against the 65K reference limit. Added a section on ProGuard to our GitHub documentation.
    • [IMPROVEMENT] Made customization of the feedback view easier by providing an entry point in FeedbackActivity.
    • [BUGFIX] Use the correct string resources for the CrashManager dialog buttons. #139
    • [BUGFIX] Localized feedback toast strings. #140
    • [BUGFIX] Removed erroneous tools:ignore instruction to correctly handle the allowBackup-attribute. #141
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-3.7.2.zip(537.09 KB)
  • 3.7.1(Feb 27, 2016)

    Our first maintenance release for our Android SDK is now publicly available. You can now check whether your app crashed in the last session and retrieve details about the crash in question. We also added more fine-grained control over the SDK's logging behavior, a user-contributed Spanish localization, and improved our ProGuard integration. For more details see the release notes below.

    • [NEW] Crash reporting learned new tricks from its iOS counterpart: You can now check if your app crashed in the last session and get crash details through CrashManager
    • [NEW] The SDK includes it's own HockeyLog-class that allows for fine-grained control over the amount of logs written to LogCat.
    • [NEW] Added Spanish localization. Thanks a lot to Rodrigo Alvarez for the contribution.
    • [IMPROVEMENT] We've added a section to our documentation that explains the advanced configuration of Android permissions. (#124)
    • [IMPROVEMENT] We've added a section on how to provide your own strings & localization to our documentation. (#116)
    • [IMPROVEMENT] We play nicer with ProGuard: we've prefixed our resources and adjusted the ProGuard settings for the SDK. #121
    • [BUGFIX] Fixed a crash in LoginTask caused by an IOException when authorizing the user by email only, and connected to wifi without internet.
    • [BUGFIX] Fixed erroneous debug messages when creating the storage directory structure. #128
    • [BUGFIX] Use separate strings for the authorization UI. #133
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-3.7.1.zip(538.13 KB)
  • 3.7.0(Jan 13, 2016)

    With this version, we move the SDK to a Gradle build using Android Studio. The App ID is now loaded from the module's Gradle file and there's no more need to include permissions or activities for our SDK – they are now automatically included through manifest merging.

    The new integration looks as follows:

    1. Add the dependency to your module:

      dependencies {
          compile 'net.hockeyapp.android:HockeySDK:3.7.0'
      }
      
    2. Add the manifest placeholder to your module (typically in the defaultConfig-closure):

      defaultConfig {
          applicationId "com.company.exampleapp"
          minSdkVersion 9
          targetSdkVersion 23
      
          //....
      
          manifestPlaceholders = [HOCKEYAPP_APP_ID: $YOUR_HOCKEYAPP_APP_ID]
      }
      

      You need to replace $YOUR_HOCKEYAPP_APP_ID with your App ID from HockeyApp.

    3. Add the following meta-data to your module's AndroidManifest.xml:

      <meta-data android:name="net.hockeyapp.android.appIdentifier" android:value="${HOCKEYAPP_APP_ID}" />
      
    4. Now you can simply register the managers in your preferred activity:

      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          // Your own code to create the view...
          UpdateManager.register(this);
      }
      
      @Override
      protected void onResume() {
          super.onResume();
          CrashManager.register(this);
      }
      

    Notice how you do not need to provide the App ID to the managers, instead they are retrieved from the manifest automatically. This is particularly handy if you have different product flavors with different App IDs.

    Building an AAR also allows us to integrate resources instead of just code. All localized strings are now in the resources directory, so you can easily override them.

    Finally, moving to Gradle allowed us to use continuous integration, so every PR you create will now be automatically checked.

    Here is the full changelog:

    • [NEW] SDK is now built with Gradle in Android Studio
    • [NEW] CrashManager, UpdateManager, FeedbackManager, and LoginManager have new register()-methods which determine the app identifier automatically from the app's manifest
    • [NEW] Permissions and activities are now automatically added through manifest merging
    • [NEW] String resources are now in the strings.xml file, so you can override them easily
    • [NEW] Crashes now include thread name and ID. You can find them in the crash log section in the backend by clicking "View raw log" (#102)
    • [NEW] Added German & French localization
    • [UPDATE] SDK now targets Android 6.0 (API level 23), requires Android 2.3 (API level 9) as minimum
    • [UPDATE] Documentation update on how to use and customize your usage of the SDK, e.g. how to make use of HockeyApp's authentication feature
    • [IMPROVEMENT] Moved user interface to resources for more flexibility in the future
    • [IMPROVEMENT] Added build checks using Travis CI
    • [IMPROVEMENT] Option to prefill feedback UI with the user's name and email (thanks to PR #110)
    • [FIX] Fixed several potential issues identified by Lint
    • [BUGFIX] Fixed an issue where we couldn't detect if an app was installed from the Play store or through ADB on Xiaomi devices (#99)
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-3.7.0.zip(518.89 KB)
  • 3.7.0-rc.1(Dec 10, 2015)

    Moving to a new build system has been a major effort, so we gladly appreciate your help in the final testing of this release. Feel free to reach out to us if you have feedback or run into any issues.

    • [IMPROVEMENT] Option to prefill feedback UI with the user's name and email (PR #110)
    • [BUGFIX] Updated French localization
    • [BUGFIX] Fix the feedback UI when drawing
    • [BUGFIX] Update UI now shows up when an update is available
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-3.7.0-rc.1.zip(511.48 KB)
  • 3.7.0-beta.2(Nov 19, 2015)

    Switching to Gradle as a build system in 3.7.0-beta.1 allowed us to focus on improving various aspects of the SDK under the hood and making a lot of minor improvements here and there.

    • [NEW] Crashes now include thread name and ID. You can find them in the crash log section in the backend by clicking "View raw log" #102
    • [NEW] Added French Localization
    • [NEW] Added more information about how to use and customize your usage of the SDK to our readme, e.g. how to make use of HockeyApp's authentication feature
    • [IMPROVEMENT] Moved user interface to resources for more flexibility in the future
    • [IMPROVEMENT] Added build checks using Travis CI
    • [FIX] Fixed a couple of lint warnings
    • [FIX] Fixed an issue where we couldn't detect if an app was installed from the play store or through ADB on Xiaomi devices #99
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-3.7.0-beta.2.zip(549.48 KB)
  • 3.7.0-b.1(Oct 23, 2015)

    This is our first beta for the new 3.7-branch. We moved to Gradle and Android Studio as a build system, making the integration and usage much more flexible.

    Changelog

    • [NEW] SDK is now built with Gradle in Android Studio
    • [NEW] CrashManager, UpdateManager, FeedbackManager, and LoginManager now have register()-methods which determine the app identifier automatically from the app's manifest
    • [NEW] Permissions and activities are now automatically added through manifest merging
    • [NEW] Added a sample app project to the SDK to demonstrate integration of the features
    • [NEW] String resources are now in the strings.xml file, so you can override them easily
    • [NEW] We have a German localization. More languages to come, stay tuned.
    • [UPDATE] SDK now targets Android 6.0 (API level 23), requires Android 2.3 (9) as minimum
    • [FIX] Fixed several potential issues identified by lint.
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-3.7.0-beta.1.zip(545.60 KB)
  • 3.6.2(Nov 2, 2015)

    We have pushed an update for our Android SDK that fixes an issue with network connectivity. Make sure to include the following additional dependency in your app's Manifest.xml:

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

    Changelog

    • [FIX] Fixed a crash that would occur when trying to send feedback without network connectivity
    Source code(tar.gz)
    Source code(zip)
    HockeySDK-Android-3.6.2.zip(706.86 KB)
In-app feedback and bug reporting tool for apps.

Instabug Android SDK Instabug is an in-app feedback and bug reporting tool for mobile apps. With just a simple shake, your users or beta testers can r

Instabug 171 Dec 22, 2022
Bugsnag crash monitoring and reporting tool for Android apps

Bugsnag error monitoring & exception reporter for Android Get comprehensive Android crash reports to quickly debug errors. Bugsnag's Android crash rep

Bugsnag 1.1k Dec 26, 2022
Visual Studio App Center Sample App for Android

Visual Studio App Center Sample App for Android The Android application in this repository and its corresponding tutorials will help you quickly and e

Yourhomeplan 1 Oct 13, 2021
Microsoft Services SDKs for Android produced by MS Open Tech.

Important: This preview SDK has been deprecated and is no longer being maintained. We recommend that you use Microsoft Graph and the associated Micros

Office Developer 222 Dec 1, 2022
Google Guice on Android, version 3.0 [RETIRED]

As of August 2016, RoboGuice is no longer supported. For nearly 5 years it was the #1 dependency injection framework on Android due to its ease-of-use

null 3.8k Dec 26, 2022
****. Use the native and support library variants instead - https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html. An android library that makes it easy to add custom fonts to edittexts and textviews

Add to your project Add this line to your dependencies in build.gradle compile 'in.workarounds.typography:typography:0.0.8' Using the views There are

Workarounds 43 Nov 6, 2021
A progress wheel for android, intended for use instead of the standard progress bar.

Deprecation warning This project is no-longer maintained, and has not been maintained for a few years now. If you're looking for an alternative librar

Todd Davies 2.7k Dec 29, 2022
Alert Dialog - You can use this extension instead of creating a separate Alert Dialog for each Activity or Fragment.

We show a warning message (Alert Dialog) to the user in many parts of our applications. You can use this extension instead of creating a separate Alert Dialog for each Activity or Fragment. Thanks to this extension, you can create a Dialog and call it in the Activity or Fragment you want and customize the component you want.

Gökmen Bayram 0 Jan 9, 2022
CrashBottomSheet shows a beautiful BottomSheetDialog when app crashes instead of displaying ugly app stopped working dialog.

CrashBottomSheet Library for Android This library allows android applications to launch a nice beautiful BottomSheetDialog when app crashes instead of

Dheeraj Kumar 11 Dec 22, 2020
Using RecyclerView to display data instead of ScrollView or lInearLayout for a strong app. It replaces the ScrollView used in trackMySleep app.

RecyclerView - SleepQualityTracker with RecyclerView app This is the toy app for Lesson 7 of the Android App Development in Kotlin course on Udacity.

Espérant GADA 0 Oct 18, 2021
[Deprecated] This project can make it easy to theme and custom Android's dialog. Also provides Holo and Material themes for old devices.

Deprecated Please use android.support.v7.app.AlertDialog of support-v7. AlertDialogPro Why AlertDialogPro? Theming Android's AlertDialog is not an eas

Feng Dai 468 Nov 10, 2022
A tool for scan and replace file content. Instead of global search and replace, it can specify replace scope

ScanReplace.kt A tool for scan and replace file content Instead of global search and replace, it can specify replace scope Usage java -jar ScanReplace

CWKSC 4 Jan 27, 2022
A simple screen that is shown when your app gets crashed instead of the normal crash dialog. It's very similar to the one in Flutter.

Red Screen Of Death What A simple screen that is shown when your app gets crashed instead of the normal crash dialog. It's very similar to the one in

Ahmad Melegy 178 Dec 9, 2022
Now deprecated. A small Android library allowing you to have a smooth and customizable horizontal indeterminate ProgressBar

Description Small library allowing you to make a smooth indeterminate progress bar. You can either user your progress bars and set this drawable or us

Antoine Merle 4.4k Dec 30, 2022
Tired of manually setup test data of Kotlin data classes or POJOs? Instantiator creates Instances of any class for you so that you can focus on writing tests instead of spending time and effort to setup test data

Instantiator Tired of manually setup test data of Kotlin data classes or POJOs? Instantiator creates Instances of any class for you so that you can fo

Hannes Dorfmann 54 Dec 30, 2022
Deprecated in favour of https://developer.android.com/reference/android/support/v4/view/animation/PathInterpolatorCompat.html

Deprecated: use https://developer.android.com/reference/android/support/v4/view/animation/PathInterpolatorCompat.html instead. android-cubic-bezier-in

Codesoup 161 Jan 1, 2023
[Deprecated] Little bites of Material Design

Working with shared elements Commit - 8872619 Working with shared elements, explode transition, and animations Commit - 901d62c Playing with the new m

Saul Molinero 2.8k Dec 25, 2022
Samples in Material Animation (Deprecated)

Material-Animation-Samples (Deprecated) or watch it on youtube #Samples: Samples in material animation will be added through the next two monthes. Lay

Ahmed Tarek 228 Dec 7, 2021
A plugin system that runs like a browser, but instead of load web pages, it load apk plugins which runs natively on Android system.

Android Dynamic Loader Android Dynamic Loader is a plugin system. The host application is like a browser, but instead of load web pages, it load plugi

Tu Yimin 1.4k Dec 28, 2022