मुझे एंड्रॉइड स्टूडियो में उपकरण परीक्षण चलाने में कठिनाई हो रही है।

जब मैं एकाधिक परीक्षण मामलों को चलाने का प्रयास करता हूं, तो "टेस्ट फ्रेमवर्क अप्रत्याशित रूप से छोड़ दिया जाता है" दिखाता है:

Android studio test framework quit unexpectedly screenshot

... और सभी परीक्षण एमुलेटर में चलते रहते हैं, लेकिन एंड्रॉइड स्टूडियो को परिणाम वापस नहीं मिल रहे हैं।

लॉगकैट यह दिखाता है:

...
03-17 11:38:59.236  1699  1719 W ActivityManager: Scheduling restart of crashed service androidx.test.orchestrator/.OrchestratorService in 1000ms
03-17 11:38:59.236  1699  1719 W ActivityManager: Crash of app androidx.test.orchestrator running instrumentation ComponentInfo{androidx.test.orchestrator/androidx.test.orchestrator.AndroidTestOrchestrator}
03-17 11:38:59.236  1699  1721 W zygote  : kill(-8537, 9) failed: No such process
03-17 11:38:59.238  1699 13861 W Binder  : Outgoing transactions from this process must be FLAG_ONEWAY
03-17 11:38:59.238  1699 13861 W Binder  : java.lang.Throwable
03-17 11:38:59.238  1699 13861 W Binder  :  at android.os.BinderProxy.transact(Binder.java:752)
03-17 11:38:59.238  1699 13861 W Binder  :  at android.app.IInstrumentationWatcher$Stub$Proxy.instrumentationFinished(IInstrumentationWatcher.java:160)
03-17 11:38:59.238  1699 13861 W Binder  :  at com.android.server.am.InstrumentationReporter$MyThread.run(InstrumentationReporter.java:86)
03-17 11:38:59.281  1699  1721 W zygote  : kill(-8537, 9) failed: No such process
03-17 11:38:59.323  1699  1721 W zygote  : kill(-8537, 9) failed: No such process
03-17 11:38:59.353 13845 13845 W app_process: Unexpected CPU variant for X86 using defaults: x86
03-17 11:38:59.362  1699  1721 W zygote  : kill(-8537, 9) failed: No such process
03-17 11:38:59.385  1699  1741 W PackageManager: Code path for androidx.test.orchestrator changing from /data/app/androidx.test.orchestrator-fgDRlA7iNSNiyWm4dLj4hg== to /data/app/androidx.test.orchestrator-6QljegpCqjAHwDuS_O9G9Q==
03-17 11:38:59.385  1699  1741 W PackageManager: Resource path for androidx.test.orchestrator changing from /data/app/androidx.test.orchestrator-fgDRlA7iNSNiyWm4dLj4hg== to /data/app/androidx.test.orchestrator-6QljegpCqjAHwDuS_O9G9Q==
03-17 11:38:59.424 13845 13870 W MessageQueue: Handler (android.os.Handler) {9320712} sending message to a Handler on a dead thread
03-17 11:38:59.424 13845 13870 W MessageQueue: java.lang.IllegalStateException: Handler (android.os.Handler) {9320712} sending message to a Handler on a dead thread
03-17 11:38:59.424 13845 13870 W MessageQueue:  at android.os.MessageQueue.enqueueMessage(MessageQueue.java:545)
03-17 11:38:59.424 13845 13870 W MessageQueue:  at android.os.Handler.enqueueMessage(Handler.java:662)
03-17 11:38:59.424 13845 13870 W MessageQueue:  at android.os.Handler.sendMessageAtTime(Handler.java:631)
03-17 11:38:59.424 13845 13870 W MessageQueue:  at android.os.Handler.sendMessageDelayed(Handler.java:601)
03-17 11:38:59.424 13845 13870 W MessageQueue:  at android.os.Handler.post(Handler.java:357)
03-17 11:38:59.424 13845 13870 W MessageQueue:  at android.os.ResultReceiver$MyResultReceiver.send(ResultReceiver.java:57)
03-17 11:38:59.424 13845 13870 W MessageQueue:  at com.android.internal.os.IResultReceiver$Stub.onTransact(IResultReceiver.java:58)
03-17 11:38:59.424 13845 13870 W MessageQueue:  at android.os.Binder.execTransact(Binder.java:697)
03-17 11:38:59.436 13768 13850 W zygote  : Long monitor contention with owner firebase-iid-executor (13808) at void java.lang.AbstractStringBuilder.ensureCapacityInternal(int)(AbstractStringBuilder.java:124) waiters=0 in java.util.TimeZone java.util.TimeZone.getTimeZone(java.lang.String) for 114ms
03-17 11:38:59.519 13768 13768 W ResourceType: Failure getting entry for 0x7f0c0112 (t=11 e=274) (error -75)
03-17 11:38:59.520 13768 13768 W ResourceType: Failure getting entry for 0x7f0c0113 (t=11 e=275) (error -75)
03-17 11:38:59.608  1571  1809 E         : Couldn't opendir /data/app/vmdl185214765.tmp: No such file or directory
03-17 11:38:59.608  1571  1809 E installd: Failed to delete /data/app/vmdl185214765.tmp: No such file or directory
03-17 11:38:59.695  1699  1719 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.PACKAGE_REMOVED dat=package:androidx.test.orchestrator flg=0x4000010 (has extras) } to com.google.android.gms/.games.chimera.GamesSystemBroadcastReceiverProxy
03-17 11:38:59.702  1699  1719 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.PACKAGE_REMOVED dat=package:androidx.test.orchestrator flg=0x4000010 (has extras) } to com.google.android.gms/.photos.autobackup.PhotosAppUninstalledReceiver
...

मेरी परीक्षण निर्भरता:

    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-web:3.2.0'
    androidTestImplementation ('androidx.test.espresso:espresso-contrib:3.2.0') {
        exclude module: 'support-compat'
    }
    androidTestImplementation 'androidx.test.espresso:espresso-intents:3.2.0'
    androidTestImplementation 'androidx.test:core:1.2.0'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test:rules:1.2.0'
    androidTestUtil 'androidx.test:orchestrator:1.2.0'
    androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'

मुझे एंड्रॉइड स्टूडियो में इंस्टेंट रन को अक्षम करने के लिए "टेस्ट फ्रेमवर्क अनपेक्षित रूप से छोड़ दिया गया" और "इस प्रक्रिया से आउटगोइंग लेनदेन FLAG_ONEWAY होना चाहिए" दोनों के कुछ संदर्भ मिले हैं, लेकिन 3.5 के बाद से कोई तत्काल रन नहीं है, इसका नाम बदलकर कोड परिवर्तन लागू करें, और मुझे इसे बंद करने का कोई विकल्प नहीं दिख रहा है।

कोई विचार इस के साथ कैसे आगे बढ़ना है?

कृपया मदद करें।

17
Daniel Dudek 17 मार्च 2020, 14:30
एंड्रॉइड स्टूडियो को अपडेट करने के बाद से मुझे एक ही समस्या का सामना करना पड़ रहा है। आप अकेले नहीं हैं, लेकिन मैं अभी तक यह पता नहीं लगा पाया कि क्या हो रहा है।
 – 
brandenbyers
17 मार्च 2020, 18:10

8 जवाब

सबसे बढ़िया उत्तर

ऐसा लगता है कि यह 3.6 के रूप में एक बग है।

Reddit में इस सूत्र के अनुसार: https://www.reddit.com/ r/androiddev/comments/f9xsz2/anyone_else_having_issues_running_androidtest/

इसे 3.6.2 में तय किया जाएगा।

4
Vitor Carvalho 17 मार्च 2020, 20:46
मुझे 3.6.2 में भी यही समस्या है खिड़की कहती है कि परीक्षण ढांचा अप्रत्याशित रूप से बंद हो गया, लेकिन परीक्षण जारी है
 – 
Lena Bru
18 अप्रैल 2020, 16:35
3.6.3 में अपग्रेड करने के बाद समस्या हल हो गई लेकिन मुझे अभी भी कभी-कभी समस्या का सामना करना पड़ता है। उस स्थिति में कैश को अमान्य करना और एंड्रॉइड स्टूडियो को पुनरारंभ करना मदद करता है।
 – 
memres
15 मई 2020, 14:40

जैसा कि Victor Carbalho ने उल्लेख किया है, यह Android Studio 3.6.1 . में एक बग है https://stackoverflow.com/a/60727631/2353939

मैं इस समय ऑर्केस्ट्रेटर को अक्षम करता हूं।

testOptions {
//     execution 'ANDROIDX_TEST_ORCHESTRATOR'
}

dependencies {
//    androidTestUtil 'androidx.test:orchestrator:1.2.0'
}
1
Aung Thiha 10 अप्रैल 2020, 09:58

मैं AS 4.1.1 पर हूं और यदि आप fragment-testing आर्टिफैक्ट का उपयोग करते हैं तो बग अभी भी मौजूद है। उपरोक्त समाधानों में से कोई भी काम नहीं किया।

मेरे मामले में जो समस्या हल हुई वह थी core निर्भरता को आर्टिफैक्ट से बाहर करना

debugImplementation ("androidx.fragment:fragment-testing:1.2.5", {
    exclude group: 'androidx.test', module: 'core'
})

स्रोत

9
MatPag 28 पद 2020, 18:14

परीक्षण में एक पूर्ण शुरुआत के रूप में, मुझे यह त्रुटि तब मिली जब मैंने अपनी मॉड्यूल-स्तरीय बिल्ड.ग्रेड फ़ाइल में - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" नहीं जोड़ा।

दूसरों के साथ ऐसा नहीं हो सकता है, लेकिन मैंने इसे जोड़ते समय इसे हल किया। दस्तावेज़ीकरण के अनुसार

JUnit 4 परीक्षण कक्षाओं का उपयोग करने के लिए, अपने ऐप की मॉड्यूल-स्तरीय बिल्ड.ग्रेड फ़ाइल में निम्न सेटिंग शामिल करके अपने प्रोजेक्ट में AndroidJUnitRunner को डिफ़ॉल्ट परीक्षण इंस्ट्रूमेंटेशन रनर के रूप में निर्दिष्ट करना सुनिश्चित करें:

तो आप इसे जोड़कर इसे आजमा सकते हैं।

android {
    defaultConfig {
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
}
4
Dharman 19 फरवरी 2021, 21:26

एंड्रॉइड स्टूडियो 4.1 में एक ही त्रुटि मिली, निर्भरता के नीचे जोड़ना

androidTestImplementation "androidx.test.espresso:espresso-core:x.x.x"

जोड़ने के साथ

android {
    defaultConfig {
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
}

समस्या का हल किया

7
Niranjan 4 मार्च 2021, 14:17

विटोर कार्वाल्हो सही है कि यह एक एंड्रॉइड स्टूडियो v3.6.1 मुद्दा है। मैंने इसे एंड्रॉइड स्टूडियो को अनइंस्टॉल करके और फिर वापस v3.5.3 पर डाउनग्रेड करके हल किया।

एंड्रॉइड स्टूडियो को अनइंस्टॉल करने के लिए, इस उत्तर के मार्गदर्शन का पालन करें, जो अनिवार्य रूप से नीचे आता है:

इन आदेशों को टर्मिनल में निष्पादित करें (हैशटैग वाली पंक्तियों को छोड़कर - वे टिप्पणियां हैं):

# Deletes the Android Studio application
# Note that this may be different depending on what you named the application as, or whether you downloaded the preview version
rm -Rf /Applications/Android\ Studio.app
# Delete All Android Studio related preferences
# The asterisk here should target all folders/files beginning with the string before it
rm -Rf ~/Library/Preferences/AndroidStudio*
# Deletes the Android Studio's plist file
rm -Rf ~/Library/Preferences/com.google.android.*
# Deletes the Android Emulator's plist file
rm -Rf ~/Library/Preferences/com.android.*
# Deletes mainly plugins (or at least according to what mine (Edric) contains)
rm -Rf ~/Library/Application\ Support/AndroidStudio*
# Deletes all logs that Android Studio outputs
rm -Rf ~/Library/Logs/AndroidStudio*
# Deletes Android Studio's caches
rm -Rf ~/Library/Caches/AndroidStudio*
# Deletes older versions of Android Studio
rm -Rf ~/.AndroidStudio*

फिर, Android Studio संग्रह से Android Studio का पिछला वर्शन इंस्टॉल करें।

1
Community 20 जून 2020, 12:12

यह मेरे लिए तब काम आया जब मैंने फ़ाइल-> अमान्य कैश और एंड्रॉइड 4.1 पर पुनरारंभ किया,

2
Priyanthi 23 पद 2020, 20:43

नीचे दी गई चीजों को हटाने या टिप्पणी करने से वास्तविक उद्देश्य हल नहीं होता है:

testOptions {
//     execution 'ANDROIDX_TEST_ORCHESTRATOR'
}

dependencies {
//    androidTestUtil 'androidx.test:orchestrator:1.2.0'
}

अनुशंसा के अनुसार: https://developer.android.com/training/ test/junit-runner#ato-gradle, हमें इसका उपयोग करना चाहिए।

मुझे भी इसी तरह की समस्या का सामना करना पड़ा जैसे परीक्षण मामलों को चलाने के दौरान, "ढांचा अप्रत्याशित रूप से छोड़ दिया गया" संदेश आ रहा था क्योंकि मैं 3.6.1 एंड्रॉइड स्टूडियो संस्करण का उपयोग कर रहा था।

Android स्टूडियो को 4.0.1 संस्करण में अपडेट करने के बाद, इस समस्या का समाधान कर दिया गया है। मैं अब सभी परीक्षण मामलों को सफलतापूर्वक निष्पादित करने में सक्षम हूं।

0
Rupesh Gaud 7 अगस्त 2020, 15:09