Giter Site home page Giter Site logo

tingsu / droiddefects Goto Github PK

View Code? Open in Web Editor NEW
20.0 3.0 2.0 145.02 MB

A database of crash (exception) bugs for Android apps

Java 19.87% Makefile 2.04% Perl 0.07% Roff 17.28% Shell 0.01% HTML 0.75% C++ 26.60% C 33.37% AIDL 0.01%
android-apps benchmark dataset exception-bugs fault-study

droiddefects's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

droiddefects's Issues

Broken APK for ScreenRecorder

The com.orpheusdroid.screenrecorder APK (https://github.com/tingsu/DroidDefects/tree/master/reproducible-cases/screenrecorder-com.orpheusdroid.screenrecorder-1.8.4) is broken, i.e., both apktool and aapt complain about a corrupted ZIP file. You can retrieve the APK in version 1.8.4 from https://archive.org/details/com.orpheusdroid.screenrecorder_21. Moreover, the crashing sequence can be simplified a lot:

  1. Launch the app
  2. Click on the Video tab
  3. Open the menu
  4. Click on About
  5. Return (click on left arrow)
  6. Close the app, e.g. click on the BACK button

The original sequence outlined in https://github.com/tingsu/DroidDefects/blob/master/reproducible-cases/screenrecorder-com.orpheusdroid.screenrecorder-1.8.4/README.md assumed that a recorded video was already present, which is not the case when launching the app. Above sequence will produce the same stack trace:

2023-11-14 12:07:33.907 5837-5837/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.orpheusdroid.screenrecorder, PID: 5837
    java.lang.RuntimeException: Unable to stop activity {com.orpheusdroid.screenrecorder/com.orpheusdroid.screenrecorder.MainActivity}: java.lang.IllegalStateException: must call onStart before onStop
        at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4165)
        at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4221)
        at android.app.ActivityThread.-wrap6(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1538)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
     Caused by: java.lang.IllegalStateException: must call onStart before onStop
        at ly.count.android.sdk.Countly.onStop(Countly.java:469)
        at com.orpheusdroid.screenrecorder.MainActivity.onStop(MainActivity.java:420)
        at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1289)
        at android.app.Activity.performStop(Activity.java:6854)
        at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4160)
        at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4221) 
        at android.app.ActivityThread.-wrap6(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1538) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6119) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 

Crash for app Anki-Android caught by ACRA

The crash for the app Anki-Android (com.ichi2.anki) can be reproduced but is actually caught by ACRA, which makes the crash harder detectable. It would be nice if you could provide an APK where ACRA is turned off such that the app really crashes.

Crash for app NewPipe no longer reproducible

The crash for the app NewPipe (org.schabi.newpipe) seems to be no longer reproducible. The search functionality doesn't seem to work any longer and also the 'Report an error' functionality fails due to a network error. I believe the server the app is communicating with is no longer active.

Alternative crash for app adsdroid

The original crash (https://github.com/tingsu/DroidDefects/tree/master/reproducible-cases/adsdroid-hu.vsza.adsdroid-1.7.2) is difficult to reproduce by a human since the search is often too fast to be interrupted by a rotation. A simpler crash can be reproduced by performing an arbitrary search, e.g., insert 'test' and then click on an arbitrary list entry. This will let the app crash with the following stack trace:

2024-01-05 19:26:35.906 4169-4186/hu.vsza.adsdroid E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
    Process: hu.vsza.adsdroid, PID: 4169
    java.lang.RuntimeException: An error occurred while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:325)
        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
        at java.util.concurrent.FutureTask.run(FutureTask.java:242)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
        at java.lang.Thread.run(Thread.java:761)
     Caused by: java.lang.IllegalArgumentException: Malformed URL: //www.alldatasheet.com/datasheet-pdf/pdf/194736/STMICROELECTRONICS/LM324.html
        at org.jsoup.helper.HttpConnection.url(HttpConnection.java:53)
        at org.jsoup.helper.HttpConnection.connect(HttpConnection.java:25)
        at org.jsoup.Jsoup.connect(Jsoup.java:73)
        at hu.vsza.adsapi.Part.getPdfConnection(Part.java:34)
        at hu.vsza.adsdroid.PartList$DownloadDatasheet.doInBackground(PartList.java:56)
        at hu.vsza.adsdroid.PartList$DownloadDatasheet.doInBackground(PartList.java:48)
        at android.os.AsyncTask$2.call(AsyncTask.java:305)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
        at java.lang.Thread.run(Thread.java:761) 
     Caused by: java.net.MalformedURLException: no protocol: //www.alldatasheet.com/datasheet-pdf/pdf/194736/STMICROELECTRONICS/LM324.html
        at java.net.URL.<init>(URL.java:589)
        at java.net.URL.<init>(URL.java:486)
        at java.net.URL.<init>(URL.java:435)
        at org.jsoup.helper.HttpConnection.url(HttpConnection.java:51)
        at org.jsoup.helper.HttpConnection.connect(HttpConnection.java:25) 
        at org.jsoup.Jsoup.connect(Jsoup.java:73) 
        at hu.vsza.adsapi.Part.getPdfConnection(Part.java:34) 
        at hu.vsza.adsdroid.PartList$DownloadDatasheet.doInBackground(PartList.java:56) 
        at hu.vsza.adsdroid.PartList$DownloadDatasheet.doInBackground(PartList.java:48) 
        at android.os.AsyncTask$2.call(AsyncTask.java:305) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
        at java.lang.Thread.run(Thread.java:761) 

Tested on a Pixel XL with API level 25 (7.1.1).

Different crash for tripmobile

The app tribmobile (me.tripsit.tripmobile) reveals a different crash upon following the crash procedure outlined here:
https://github.com/tingsu/DroidDefects/tree/master/reproducible-cases/tripmobile-me.tripsit.mobile-1.0

When clicking on the 'Factsheets' ImageButton (2nd step) the app crashes with the following stack trace:

java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:325)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at android.os.Handler.<init>(Handler.java:200)
at android.os.Handler.<init>(Handler.java:114)
at android.app.Dialog.<init>(Dialog.java:122)
at android.app.AlertDialog.<init>(AlertDialog.java:200)
at android.app.AlertDialog$Builder.create(AlertDialog.java:1086)
at android.app.AlertDialog$Builder.show(AlertDialog.java:1111)
at me.tripsit.mobile.common.ErrorHandlingActivity.handleGenericError(ErrorHandlingActivity.java:21)
at me.tripsit.mobile.factsheets.DrugNamesAsyncTask.doInBackground(DrugNamesAsyncTask.java:50)
at me.tripsit.mobile.factsheets.DrugNamesAsyncTask.doInBackground(DrugNamesAsyncTask.java:19)
at android.os.AsyncTask$2.call(AsyncTask.java:305)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
at java.lang.Thread.run(Thread.java:761) 

Tested on a Pixel XL API 25 (7.1.1).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.