Ionic/angularjs/phonegapアプリを作成しています。フロントエンド開発は初めてです。私はpackage.jsonとbowser.jsonを持っています。 package.jsonで、パッケージをインストールした後、「bower install」を実行してすべてのbower依存関係をインストールします。 wwwでpythonサーバーを実行して、Chromeでアプリを表示できます。ただし、Androidエミュレータで実行できません。誰かが私を案内してくれませんか?
[〜#〜]編集[〜#〜]
この質問を投稿した後、ionicにはすでにangularが付属しており、それを使用するだけでよいことに気付きました。 bootstrapも必要ありません。ionicは私が必要とするフレームワークです。アンダースコアだけが必要です。片付けます。しかし、これはエラーに関連しているとは思いません。
"cordova 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シードプロジェクトから取得しました)
{
"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"
}
}
@givanse-私は自分の質問に答えたので、プラットフォームの依存関係がある場合(プラットフォーム/ Androidで緩めたくないコードを意味する)、クリーンビルドを実行するために、次のようにしました。
rm -r platforms/Android/ant-build
rm -r platforms/Android/assets
すべては今良いです。ありがとう。
このエラーは、ビルドが完了する前に中止されたためにプロジェクトが不整合な状態のままになっていることが原因のようです。
カスタムプラットフォームコードがない場合は、次のようにします。
rm -r platforms/Android/
phonegap run Android
バージョン管理ツールを使用している場合は、プラットフォーム(コミット済み)の変更を簡単に回復できることに注意してください。
git checkout platforms/Android/
これはIS正しい>>>>>>>>これはcordovaで中断されたコンパイルが原因でであり、次のようになります。
ビルド失敗
~\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
これはバージョンのアップグレードの後で私に起こりました、そしていくつかのグーグルの後、私はプラットフォームを削除して新しいCLIでそれを再追加するための最良の解決策を見つけました:
cordova platform remove PLATFORM
cordova platform add PLATFORM
その後、ビルドは成功します
メッセージを注意深く読むとヒントが得られます。これは、Android-sdkディレクトリでAndroid.batを探しているため、必要なのはAndroid.batの場所をコピーし、環境のWindowsパスに配置することだけです。
また、Javaディレクトリを変更または更新したため、環境パスにJava\binディレクトリを追加したため、終了エラー1「1」が発生する場合があります。