Не удалось найти Java Runtime Android Studio Robolectric

Я добавил Robolectric в проект Android. Я использую Android Studio с Build Tools в 19.0.1.

Я могу запустить тесты с помощью:

$./gradlew test 

Которые выполняются отлично.

Если я попробую:

 $ gradle installDebug 

Он также отлично работает:

 $ ./gradlew installDebug WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for debugTest as it may be conflicting with the internal version provided by Android. In case of problem, please repackage it with jarjar to change the class packages WARNING: Dependency org.apache.httpcomponents:httpclient:4.0.3 is ignored for debugTest as it may be conflicting with the internal version provided by Android. In case of problem, please repackage it with jarjar to change the class packages The Test.testReportDir property has been deprecated and is scheduled to be removed in Gradle 2.0. Please use the Test.getReports().getHtml().getDestination() property instead. :app:compileDebugNdk :app:preBuild :app:preDebugBuild :app:checkDebugManifest :app:prepareDebugDependencies :app:compileDebugAidl :app:compileDebugRenderscript :app:generateDebugBuildConfig :app:mergeDebugAssets :app:generateDebugResValues UP-TO-DATE :app:generateDebugResources :app:mergeDebugResources :app:processDebugManifest :app:processDebugResources :app:generateDebugSources :app:compileDebugJava :app:preDexDebug :app:dexDebug :app:processDebugJavaRes UP-TO-DATE :app:validateDebugSigning :app:packageDebug :app:installDebug 8266 KB/s (46166 bytes in 0.005s) pkg: /data/local/tmp/app-debug-unaligned.apk Success BUILD SUCCESSFUL Total time: 4.291 secs 

Однако, когда я пытаюсь запустить свой проект на устройстве или эмуляторе из Android Studio, я получаю следующее:

 Execution failed for task ':app:dexDebug'. > com.android.ide.common.internal.LoggedErrorException: Failed to run command: /Applications/Android Studio.app/sdk/build-tools/19.0.1/dx --dex --output /Users/fstephany/Code/android/RoboElectricTestingProject/app/build/dex/debug /Users/fstephany/Code/android/RoboElectricTestingProject/app/build/classes/debug /Users/fstephany/Code/android/RoboElectricTestingProject/app/build/dependency-cache/debug Error Code: 1 Output: Unable to locate a Java Runtime to invoke. 

Любой намек на то, где искать эту проблему? Я всегда могу installDebug затем запустить приложение из CLI или Studio, но это installDebug .

Solutions Collecting From Web of "Не удалось найти Java Runtime Android Studio Robolectric"

Демон с истекшим градиентом может вызывать некоторые проблемы с производительностью в фоновом режиме. Я думал, что град будет очищать его после 3 часов бездействия, но это, похоже, не так. Перейдите к своему терминалу, перейдите в корневую папку вашего проекта, где находятся файлы градиента, и введите команду

 ./gradlew --stop 

И попробуйте запустить сборку снова. Надеюсь, это решит вашу проблему, как и моя.

Я пытаюсь понять, почему это вызвало проблему, но я еще не нашел достаточно хорошей причины. Я отредактирую ответ, если найду что-нибудь.

ОБНОВИТЬ

На странице Gradle Design Github :

В настоящее время у демона возникают серьезные проблемы, когда происходит давление памяти. Когда под давлением, процесс демона показывает GC thrash.

Одной из гипотез для этого является использование слабых опорных кэшей, особенно в метаклассовой системе Groovy, где экземпляры метакласса хранятся в слабом кэше ссылок. Обратите внимание, что это не обязательно проблема с демоном, так как это также относится к случаю не демона. Однако он усугубляется утечкой памяти демоном, тем самым увеличивая вероятность возникновения ситуации с давлением памяти.

Это не дает окончательного ответа, но это дает догадку, что демон может быть виновником того, что вы видите (наряду с другими вещами). Я видел, что некоторые задачи градации занимают 10 раз, как обычно, и работает –stop также устраняет эти проблемы.

Для меня добавление JAVA_HOME в ваши переменные пути (Android Studio -> Preferences -> Path Variables), а затем перезапуск демона Gradle, как упоминалось выше ( ./gradlew --stop ), сделал трюк.

На Mac вы можете найти свой каталог Java (версия 6) с помощью /usr/libexec/java_home -v 1.6

Переход на Gradle 1.10 работал для меня (на OS-X). Вы можете отредактировать свойства оболочки gradle или настроить локальное распределение градиентов в Android-Studio

Попробуйте установить sourceCompatibility и targetCompatibility в файле build.gradle. Для Java 1.7 он должен выглядеть так:

 android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } }