# [Windows][Android studio]vulkansamples 小白填坑心得 ###### tags: android vulkan 以下是我遇到有血有淚的坑 #### 1 no module named datetime 執行到下列步驟 ``` ..\..\..\ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk ^ APP_ABI=all APP_PLATFORM=android-24 APP_STL=c++_static ^ -j8 clean libshaderc_combined ``` 會遇到此坑[no module named datetime] [思考過程]以為是有缺少packages,所以使用pip下載,但結果無效 後來才發現這部分在執行時會自己去抓NDK目錄下python2.7的舊版本, 所以我把NDK目錄下的python.exe檔全刪了,就解決。 #### 2 OSError: [WinError 193] %1 is not a valid Win32 application 執行到下列步驟 ``` cd android python3 compile_shaders.py ``` ("python3",這個指令若本身電腦環境變數設置是"python",就把"3"省略掉,原因應該是有部分人的電腦裡同時有python2,python3,所以環境變數設置有所區別) 會遇到兩個坑 第一個是[OSError: [WinError 193] %1 is not a valid Win32 application] [思考過程]以為是因為使用64位元的python,所以無法,但改用anaconda3共存方式開32位元python,也無法解決。 仔細看錯誤訊息發現源自於subprocess.py這個檔案, 後來嘗試網路上提供的方法,去修改"subprocess.py" ``` 將shell=false 改成 shell=ture ``` 就可解決 #### 3 ..\..\glslang\bin\glslangValidator' 不是內部或外部命令、可執行的程式或批次檔。 #### 4 ..\..\spirv-tools\bin\spirv-as' 不是內部或外部命令、可執行的程式或批次檔。 剛剛上列步驟第二個坑 這次學乖了從錯誤訊息直接攻擊目標"compile_shaders.py" 打開發現,裡面有兩行 ``` "glslang-master-linux-Release.zip" "SPIRV-Tools-master-linux-RelWithDebInfo.zip" ``` 我是在windows,但他下載的是linux版本, 所以修改為 ``` "glslang-master-windows-x64-Release.zip" "SPIRV-Tools-master-windows-x64-Release.zip" ``` 就解決此問題