タイプExec
のGradleタスクからPythonスクリプトを実行しようとしています。私の主なビルドタスクはこのタスクに依存しています。この例では、私のビルドタスクassembleProjectDebug
を呼び出してみましょう。のは、これにも例を単純化してみましょう:コマンドラインビルドから実行しているが、Androidビルドから実行していないGradle Execタスク
tasks.create(name: newFooTask, type: Exec) {
commandLine "python", "doSomething.py"
}
tasks[assembleProjectDebug].dependsOn(newFooTask)
私は端末から./gradlew assembleProjectDebug
を実行する場合、私のPythonスクリプトを実行し、すべての世界でもあります。しかし、Build -> Make Project
でAndroidスタジオからビルドしようとすると、私のpythonスクリプトは実行されません。
projectDebug
に設定されていることを確認することができ、また、Androidのメーカーから構築するとき、
:app:assembleProjectDebug
は
assembleProjectDebug
タスクがあると信じて私をリードし、ログに表示されるか、実行されることを確認することができます
(Iそこに間違っている可能性があります)。
簡潔にするために、自分の$ PATH変数を私のpython execの場所に向ける私の仕事に環境変数をどこに割り当てるのかを除いています。
私の外で、サブプロセスのための適切な$ PATH変数の割り当てがうまくいかず、コマンドラインビルドでこのタスクが実行されるのですが、Android Studio内のビルドはこのタスクを実行しません。
:あなたはここに
Configure on Demand
詳細を読むことができます:両方のインスタンスでassembleProjectDebugを実行します。端末ビルドで 'app:assembleProjectDebug'の前に' newFooTask'に依存するタスクが実行されていますが、Android Studioビルドでは 'newFooTask'が実行されていません。 –