2014-04-06 36 views
16

Tôi đang tạo ứng dụng ionic/angularjs/phonegap. Tôi mới phát triển giao diện người dùng. Tôi có một package.json và một bowser.json. Trong package.json, sau khi cài đặt các gói, tôi chạy "bower install" để cài đặt tất cả các phụ thuộc bower. Tôi có thể chạy một máy chủ python trong www và xem ứng dụng trong chrome. Tuy nhiên tôi không thể chạy trong trình giả lập Android. Ai đó có thể hướng dẫn tôi không?cordova không thành công với mã thoát 2

EDIT

tôi nhận ra sau khi đăng câu hỏi này mà ion đã tàu với góc và tôi chỉ nên sử dụng đó. Cũng không cần bootstrap như ionic là một framework tôi cần. Chỉ cần nhấn mạnh. Tôi sẽ làm sạch nó. Nhưng tôi không nghĩ rằng bất kỳ điều này liên quan đến lỗi.

Đây là lỗi sau khi chạy "cordova xây dựng":

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 (Tôi đã nhận nó từ dự án hạt angularjs)

{ 
    "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" 
    } 
} 
+0

Tôi nhận được lỗi tương tự sau khi cúp điện không may ở giữa '' 'phonegap chạy android''' với thiết bị được kết nối qua USB. – givanse

Trả lời

7

Lỗi này có vẻ là do một bản dựng bị hủy bỏ trước khi hoàn thành, để lại dự án ở trạng thái không nhất quán.

Nếu bạn không có mã nền tảng tùy chỉnh, chỉ cần:

rm -r platforms/android/ 
phonegap run android 

Lưu ý rằng nếu bạn đang sử dụng một công cụ kiểm soát phiên bản, bạn có thể dễ dàng phục hồi nền tảng của bạn (cam kết) thay đổi:

git checkout platforms/android/ 
+0

Điều gì sẽ xảy ra nếu tôi có phụ thuộc nền tảng, tôi cần phải tạo thư mục con nào để rm -r? Cảm ơn trước ...
có tùy chọn sạch không? cordova chạy android -clean –

+0

Vâng, tôi đã tìm kiếm một cái gì đó tương tự, thậm chí đã thử các mục tiêu ant trực tiếp trong thư mục android, nhưng không có con xúc xắc. Vì tôi không có bất kỳ thay đổi cụ thể nào của Android, tôi đã sử dụng hạt nhân do lỗi. – givanse

22

@givanse - Tôi đã trả lời câu hỏi của riêng mình, vì vậy nếu bạn có phụ thuộc nền tảng (có nghĩa là mã bạn không muốn bị mất trong nền tảng/android), do đó, để làm một công trình sạch sẽ, tôi đã làm:

rm -r platforms/android/ant-build 
rm -r platforms/android/assets 

tất cả đều tốt. Cảm ơn.

+3

Chỉ xóa các nền tảng/android/ant-build cũng hoạt động. anyways: +1: – kushdilip

2

NÀY LÀ ĐÚNG >>>>>>>> đây là gây ra bởi một gián đoạn biên dịch trong cordova và trông như thế này:

BUILD FAILED

~\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) 

bạn khắc phục nó bằng cách đổi tên thư mục ~\platforms cho một thứ khác (hoặc chỉ cần xóa nó) sau đó chạy trong cmd

cordova platform add android 

sau đó

cordova run android 
1

này xảy ra với tôi sau khi nâng cấp phiên bản và sau khi một số googling tôi tìm thấy giải pháp tốt nhất để chỉ loại bỏ nền tảng này và sau đó thêm lại với CLI mới:

cordova platform remove PLATFORM 
cordova platform add PLATFORM 

Sau đó, công trình xây dựng thành công

1

Nếu bạn đọc kỹ thông điệp bạn sẽ nhận được gợi ý. Nó đang tìm kiếm android.bat trong thư mục android-sdk của bạn để tất cả những gì bạn phải làm là sao chép vị trí của android.bat và đặt trong đường dẫn cửa sổ môi trường của bạn.

Bạn cũng có thể gặp phải lỗi thoát "1" là vì bạn đã thay đổi hoặc cập nhật thư mục java của mình để thêm vào đường dẫn môi trường của bạn thư mục java \ bin.

Các vấn đề liên quan