Кордова не работает с кодом выхода 2
Я создаю приложение ionic/angularjs/phonegap. Я новичок в развитии интерфейса. У меня есть package.json и bowser.json. В package.json, после установки пакетов, я запускаю установку "bower install" для установки всех зависимостей бауэр. Я могу запустить python-сервер на www и посмотреть приложение в хром. Однако я не могу работать в эмуляторе Android. Может ли кто-нибудь направить меня?
ИЗМЕНИТЬ
Я понял после публикации этого вопроса, что ионный уже поставляется с angular, и я должен просто использовать это. Также не нужен бутстрап, поскольку ионный является основой, в которой я нуждаюсь. Просто нужно подчеркнуть. Я очищу его. Но я не думаю, что это связано с ошибкой.
Вот ошибка после запуска " corova build":
BUILD FAILED
k:\android\sdk\tools\ant\build.xml:932: The following error occurred while execu
ting this line:
k:\android\sdk\tools\ant\build.xml:950: java.lang.ArrayIndexOutOfBoundsException
: 1
at com.android.ant.DependencyGraph.parseDependencyFile(DependencyGraph.j
ava:180)
at com.android.ant.DependencyGraph.<init>(DependencyGraph.java:54)
at com.android.ant.SingleDependencyTask.initDependencies(SingleDependenc
yTask.java:87)
at com.android.ant.AaptExecTask.execute(AaptExecTask.java:509)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
at com.android.ant.IfElseTask.execute(IfElseTask.java:124)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.jav
a:396)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExe
cutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
at org.apache.tools.ant.Main.runBuild(Main.java:851)
at org.apache.tools.ant.Main.startAnt(Main.java:235)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Total time: 4 seconds
Error code 1 for command: cmd with args: /s,/c,ant,debug,-f,k:\tmp\angularToDo\p
latforms\android\build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant-gen
Error: cmd: Command failed with exit code 2
at ChildProcess.whenDone (c:\Users\IBM_ADMIN\AppData\Roaming\npm\node_module
s\cordova\src\superspawn.js:112:23)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:743:16)
at Process.ChildProcess._handle.onexit (child_process.js:810:5)
Package.json
{
"name": "ionic-project",
"version": "1.0.0",
"description": "An Ionic project",
"dependencies": {
"gulp": "^3.5.6",
"gulp-sass": "^0.7.1",
"gulp-concat": "^2.2.0",
"gulp-minify-css": "^0.3.0",
"gulp-rename": "^1.2.0",
"karma": "~0.10",
"protractor": "~0.17.0",
"bower": "^1.3.1"
},
"scripts": {
"postinstall": "bower install"
}
}
Bower.json (я получил его от проекта angularjs seed)
{
"name": "angular-seed",
"description": "A starter project for AngularJS",
"version": "0.0.0",
"homepage": "https://github.com/angular/angular-seed",
"license": "MIT",
"private": true,
"dependencies": {
"angular": "1.2.x",
"angular-route": "1.2.x",
"angular-loader": "1.2.x",
"angular-mocks": "~1.2.15",
"bootstrap" : "3.1.1",
"underscore" : "1.6.0"
}
}
Ответы
Ответ 1
@givanse - я ответил на свой вопрос, поэтому, если у вас есть зависимости от платформы (это означает, что код не нужен для платформы в android), чтобы сделать чистую сборку, я сделал:
rm -r platforms/android/ant-build
rm -r platforms/android/assets
все хорошо сейчас. Спасибо.
Ответ 2
Похоже, что ошибка вызвана сборкой, которая была прервана до ее завершения, в результате чего проект находится в противоречивом состоянии.
Если у вас нет пользовательского кода платформы, просто:
rm -r platforms/android/
phonegap run android
Обратите внимание, что если вы используете средство управления версиями, вы можете легко восстановить свои измененные платформы:
git checkout platforms/android/
Ответ 3
ЭТО ПРАВИЛЬНО → → → → это вызвано прерванным компилятором в кордове и выглядит следующим образом:
СТРОГО НЕИСПРАВНО
~\sdk\tools\ant\build.xml:932: The following error occurred while executing this line:
~\sdk\tools\ant\build.xml:950: java.lang.ArrayIndexOutOfBoundsException: 1
at com.android.ant.DependencyGraph.parseDependencyFile(DependencyGraph.java:180)
at com.android.ant.DependencyGraph.<init>(DependencyGraph.java:54)
at com.android.ant.SingleDependencyTask.initDependencies(SingleDependencyTask.java:87)
at com.android.ant.AaptExecTask.execute(AaptExecTask.java:509)
Error: ~\platforms\android\cordova\run.bat: Command failed with exit code 8
at ChildProcess.whenDone (~npm\node_modules\cordova\node_modules\cordova-lib\src\cordova\superspawn.js:135:23)
вы исправите его, переименовав папку ~\platforms
на что-то другое (или просто удалив его), затем запустив в cmd
cordova platform add android
затем
cordova run android
Ответ 4
Это случилось со мной после обновления версий, и после некоторого поиска в Google я нашел лучшее решение, чтобы просто удалить платформу, а затем снова добавить ее с новым CLI:
cordova platform remove PLATFORM
cordova platform add PLATFORM
Затем сборка завершается успешно
Ответ 5
Если вы внимательно прочитаете, что сообщение получит подсказку. Он ищет android.bat в вашем каталоге android-sdk, поэтому все, что вам нужно сделать, это скопировать местоположение android.bat и вставить путь к вашей среде.
Вы также можете получить ошибку выхода один "1", потому что вы изменили или обновили свой каталог java, поэтому добавьте в свой путь среды каталог java\bin.