896. Monotonic Array

本文介绍了一种用于检测数组是否为单调递增或单调递减的高效算法。通过两种方法实现,第一种方法逐元素比较,第二种方法一次性遍历判断,提高了算法效率。适用于长度不超过50000且元素值在-100000至100000之间的数组。

896. Monotonic Array


An array is monotonic if it is either monotone increasing or monotone decreasing.

An array A is monotone increasing if for all i <= j, A[i] <= A[j]. An array A is monotone decreasing if for all i <= j, A[i] >= A[j].

Return true if and only if the given array A is monotonic.

Example 1:

Input: [1,2,2,3]
Output: true

Example 2:

Input: [6,5,4,4]
Output: true

Example 3:

Input: [1,3,2]
Output: false

Example 4:

Input: [1,2,4,5]
Output: true

Example 5:

Input: [1,1,1]
Output: true

Note:

  1. 1 <= A.length <= 50000
  2. -100000 <= A[i] <= 100000

方法1:

class Solution1 {
public:
    bool isMonotonic(vector<int>& A) {
        if (A.size() <= 1) return true;
        if (A[0] <= A.back()) {
            for (int i = 0; i < A.size() - 1; i++) {
                if (A[i] > A[i + 1]) return false;
            }
        }
        else {
            for (int i = 0; i < A.size() - 1; i++) {
                if (A[i] < A[i + 1]) return false;
            }
        }
        return true;
    }
};

方法2: one pass

不用判空。

class Solution {
public:
    bool isMonotonic(vector<int>& A) {
        bool inc = true;
        bool dec = true;
        
        for (int i = 0; i < A.size() - 1; i++) {
            inc &= (A[i] <= A[i + 1]);
            dec &= (A[i] >= A[i + 1]);
        }
        return inc || dec;
    }
};
下述bug如何进行修复: Executing tasks: [:app:assembleDebug] in project G:\Users\Administrator\AndroidStudioProjects\PoBeWorld > Task :app:createDebugVariantModel UP-TO-DATE > Task :app:preBuild UP-TO-DATE > Task :app:preDebugBuild UP-TO-DATE > Task :app:mergeDebugNativeDebugMetadata NO-SOURCE > Task :app:javaPreCompileDebug UP-TO-DATE > Task :app:checkDebugAarMetadata UP-TO-DATE > Task :app:generateDebugResValues UP-TO-DATE > Task :app:mapDebugSourceSetPaths UP-TO-DATE > Task :app:generateDebugResources UP-TO-DATE > Task :app:mergeDebugResources UP-TO-DATE > Task :app:packageDebugResources UP-TO-DATE > Task :app:parseDebugLocalResources UP-TO-DATE > Task :app:createDebugCompatibleScreenManifests UP-TO-DATE > Task :app:extractDeepLinksDebug UP-TO-DATE > Task :app:processDebugMainManifest UP-TO-DATE > Task :app:processDebugManifest UP-TO-DATE > Task :app:processDebugManifestForPackage UP-TO-DATE > Task :app:processDebugResources UP-TO-DATE > Task :app:compileDebugJavaWithJavac UP-TO-DATE > Task :app:mergeDebugShaders UP-TO-DATE > Task :app:compileDebugShaders NO-SOURCE > Task :app:generateDebugAssets UP-TO-DATE > Task :app:mergeDebugAssets UP-TO-DATE > Task :app:compressDebugAssets UP-TO-DATE > Task :app:processDebugJavaRes NO-SOURCE > Task :app:mergeDebugJavaResource UP-TO-DATE > Task :app:checkDebugDuplicateClasses UP-TO-DATE > Task :app:desugarDebugFileDependencies UP-TO-DATE > Task :app:mergeExtDexDebug UP-TO-DATE > Task :app:mergeLibDexDebug UP-TO-DATE > Task :app:dexBuilderDebug UP-TO-DATE > Task :app:mergeProjectDexDebug UP-TO-DATE > Task :app:configureCMakeDebug[x86_64] > Task :app:buildCMakeDebug[x86_64] FAILED C/C++: ninja: Entering directory `G:\Users\Administrator\AndroidStudioProjects\PoBeWorld\app\.cxx\Debug\2p6552u5\x86_64' C/C++: D:\Users\Administrator\AppData\Local\sdk\ndk\25.1.8937393\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=x86_64-none-linux-android26 --sysroot=D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dnative_lib_EXPORTS -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fno-limit-debug-info -fPIC -MD -MT CMakeFiles/native-lib.dir/imgui_impl_opengl3.cpp.o -MF CMakeFiles\native-lib.dir\imgui_impl_opengl3.cpp.o.d -o CMakeFiles/native-lib.dir/imgui_impl_opengl3.cpp.o -c G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp:166:19: error: use of undeclared identifier 'GL_POLYGON_MODE' C/C++: glGetIntegerv(GL_POLYGON_MODE, last_polygon_mode); C/C++: ^ C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp:239:70: error: no member named 'TextureId' in 'ImDrawCmd' C/C++: glBindTexture(GL_TEXTURE_2D, (GLuint)(intptr_t)pcmd->TextureId); C/C++: ~~~~ ^ C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp:261:5: error: use of undeclared identifier 'glPolygonMode' C/C++: glPolygonMode(GL_FRONT_AND_BACK, (GLenum)last_polygon_mode[0]); C/C++: ^ C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp:298:25: error: use of overloaded operator '=' is ambiguous (with operand types 'ImTextureRef' and 'int') C/C++: io.Fonts->TexID = 0; C/C++: ~~~~~~~~~~~~~~~ ^ ~ C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui/imgui.h:357:8: note: candidate function (the implicit copy assignment operator) C/C++: struct ImTextureRef C/C++: ^ C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui/imgui.h:357:8: note: candidate function (the implicit move assignment operator) C/C++: 4 errors generated. C/C++: D:\Users\Administrator\AppData\Local\sdk\ndk\25.1.8937393\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=x86_64-none-linux-android26 --sysroot=D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dnative_lib_EXPORTS -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fno-limit-debug-info -fPIC -MD -MT CMakeFiles/native-lib.dir/native-lib.cpp.o -MF CMakeFiles\native-lib.dir\native-lib.cpp.o.d -o CMakeFiles/native-lib.dir/native-lib.cpp.o -c G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp:146:26: error: use of undeclared identifier 'AInputEvent_fromJava'; did you mean 'AInputQueue_fromJava'? C/C++: AInputEvent* event = AInputEvent_fromJava(env, motionEvent); C/C++: ^~~~~~~~~~~~~~~~~~~~ C/C++: AInputQueue_fromJava C/C++: D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android/input.h:1453:14: note: 'AInputQueue_fromJava' declared here C/C++: AInputQueue* AInputQueue_fromJava(JNIEnv* env, jobject inputQueue) __INTRODUCED_IN(33); C/C++: ^ C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp:146:18: error: cannot initialize a variable of type 'AInputEvent *' with an rvalue of type 'AInputQueue *' C/C++: AInputEvent* event = AInputEvent_fromJava(env, motionEvent); C/C++: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C/C++: D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android/input.h:1394:8: note: 'AInputQueue' is not defined, but forward declared here; conversion would be valid if it was derived from 'AInputEvent' C/C++: struct AInputQueue; C/C++: ^ C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp:146:26: error: 'AInputQueue_fromJava' is unavailable: introduced in Android 33 C/C++: AInputEvent* event = AInputEvent_fromJava(env, motionEvent); C/C++: ^ C/C++: D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android/input.h:1453:14: note: 'AInputQueue_fromJava' has been explicitly marked unavailable here C/C++: AInputQueue* AInputQueue_fromJava(JNIEnv* env, jobject inputQueue) __INTRODUCED_IN(33); C/C++: ^ C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp:226:9: error: use of undeclared identifier 'usleep' C/C++: usleep(16000); // 约60fps C/C++: ^ C/C++: 4 errors generated. C/C++: D:\Users\Administrator\AppData\Local\sdk\ndk\25.1.8937393\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=x86_64-none-linux-android26 --sysroot=D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dnative_lib_EXPORTS -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fno-limit-debug-info -fPIC -MD -MT CMakeFiles/native-lib.dir/imgui_impl_android.cpp.o -MF CMakeFiles\native-lib.dir\imgui_impl_android.cpp.o.d -o CMakeFiles/native-lib.dir/imgui_impl_android.cpp.o -c G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:57:21: error: variable has incomplete type 'struct timespec' C/C++: struct timespec now; C/C++: ^ C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:57:12: note: forward declaration of 'timespec' C/C++: struct timespec now; C/C++: ^ C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:58:19: error: use of undeclared identifier 'CLOCK_MONOTONIC' C/C++: clock_gettime(CLOCK_MONOTONIC, &now); C/C++: ^ C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:101:54: error: use of undeclared identifier 'AInputEvent_getAction'; did you mean 'AKeyEvent_getAction'? C/C++: int32_t action = AMOTION_EVENT_ACTION_MASK & AInputEvent_getAction(event); C/C++: ^~~~~~~~~~~~~~~~~~~~~ C/C++: AKeyEvent_getAction C/C++: D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android/input.h:990:9: note: 'AKeyEvent_getAction' declared here C/C++: int32_t AKeyEvent_getAction(const AInputEvent* key_event); C/C++: ^ C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:102:32: error: use of undeclared identifier 'AMOTION_EVENT_getPointerCount' C/C++: int32_t pointerCount = AMOTION_EVENT_getPointerCount(event); C/C++: ^ C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:107:23: error: use of undeclared identifier 'AMOTION_EVENT_getX' C/C++: float x = AMOTION_EVENT_getX(event, 0); C/C++: ^ C/C++: G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:108:23: error: use of undeclared identifier 'AMOTION_EVENT_getY' C/C++: float y = AMOTION_EVENT_getY(event, 0); C/C++: ^ C/C++: 6 errors generated. > Task :app:mergeDebugJniLibFolders UP-TO-DATE > Task :app:validateSigningDebug UP-TO-DATE > Task :app:writeDebugAppMetadata UP-TO-DATE > Task :app:writeDebugSigningConfigVersions UP-TO-DATE [Incubating] Problems report is available at: file:///G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/build/reports/problems/problems-report.html FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:buildCMakeDebug[x86_64]'. > com.android.ide.common.process.ProcessException: ninja: Entering directory `G:\Users\Administrator\AndroidStudioProjects\PoBeWorld\app\.cxx\Debug\2p6552u5\x86_64' [1/4] Building CXX object CMakeFiles/native-lib.dir/imgui_impl_opengl3.cpp.o FAILED: CMakeFiles/native-lib.dir/imgui_impl_opengl3.cpp.o D:\Users\Administrator\AppData\Local\sdk\ndk\25.1.8937393\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=x86_64-none-linux-android26 --sysroot=D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dnative_lib_EXPORTS -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fno-limit-debug-info -fPIC -MD -MT CMakeFiles/native-lib.dir/imgui_impl_opengl3.cpp.o -MF CMakeFiles\native-lib.dir\imgui_impl_opengl3.cpp.o.d -o CMakeFiles/native-lib.dir/imgui_impl_opengl3.cpp.o -c G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp:166:19: error: use of undeclared identifier 'GL_POLYGON_MODE' glGetIntegerv(GL_POLYGON_MODE, last_polygon_mode); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp:239:70: error: no member named 'TextureId' in 'ImDrawCmd' glBindTexture(GL_TEXTURE_2D, (GLuint)(intptr_t)pcmd->TextureId); ~~~~ ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp:261:5: error: use of undeclared identifier 'glPolygonMode' glPolygonMode(GL_FRONT_AND_BACK, (GLenum)last_polygon_mode[0]); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp:298:25: error: use of overloaded operator '=' is ambiguous (with operand types 'ImTextureRef' and 'int') io.Fonts->TexID = 0; ~~~~~~~~~~~~~~~ ^ ~ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui/imgui.h:357:8: note: candidate function (the implicit copy assignment operator) struct ImTextureRef ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui/imgui.h:357:8: note: candidate function (the implicit move assignment operator) 4 errors generated. [2/4] Building CXX object CMakeFiles/native-lib.dir/native-lib.cpp.o FAILED: CMakeFiles/native-lib.dir/native-lib.cpp.o D:\Users\Administrator\AppData\Local\sdk\ndk\25.1.8937393\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=x86_64-none-linux-android26 --sysroot=D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dnative_lib_EXPORTS -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fno-limit-debug-info -fPIC -MD -MT CMakeFiles/native-lib.dir/native-lib.cpp.o -MF CMakeFiles\native-lib.dir\native-lib.cpp.o.d -o CMakeFiles/native-lib.dir/native-lib.cpp.o -c G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp:146:26: error: use of undeclared identifier 'AInputEvent_fromJava'; did you mean 'AInputQueue_fromJava'? AInputEvent* event = AInputEvent_fromJava(env, motionEvent); ^~~~~~~~~~~~~~~~~~~~ AInputQueue_fromJava D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android/input.h:1453:14: note: 'AInputQueue_fromJava' declared here AInputQueue* AInputQueue_fromJava(JNIEnv* env, jobject inputQueue) __INTRODUCED_IN(33); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp:146:18: error: cannot initialize a variable of type 'AInputEvent *' with an rvalue of type 'AInputQueue *' AInputEvent* event = AInputEvent_fromJava(env, motionEvent); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android/input.h:1394:8: note: 'AInputQueue' is not defined, but forward declared here; conversion would be valid if it was derived from 'AInputEvent' struct AInputQueue; ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp:146:26: error: 'AInputQueue_fromJava' is unavailable: introduced in Android 33 AInputEvent* event = AInputEvent_fromJava(env, motionEvent); ^ D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android/input.h:1453:14: note: 'AInputQueue_fromJava' has been explicitly marked unavailable here AInputQueue* AInputQueue_fromJava(JNIEnv* env, jobject inputQueue) __INTRODUCED_IN(33); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp:226:9: error: use of undeclared identifier 'usleep' usleep(16000); // 约60fps ^ 4 errors generated. [3/4] Building CXX object CMakeFiles/native-lib.dir/imgui_impl_android.cpp.o FAILED: CMakeFiles/native-lib.dir/imgui_impl_android.cpp.o D:\Users\Administrator\AppData\Local\sdk\ndk\25.1.8937393\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=x86_64-none-linux-android26 --sysroot=D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dnative_lib_EXPORTS -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fno-limit-debug-info -fPIC -MD -MT CMakeFiles/native-lib.dir/imgui_impl_android.cpp.o -MF CMakeFiles\native-lib.dir\imgui_impl_android.cpp.o.d -o CMakeFiles/native-lib.dir/imgui_impl_android.cpp.o -c G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:57:21: error: variable has incomplete type 'struct timespec' struct timespec now; ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:57:12: note: forward declaration of 'timespec' struct timespec now; ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:58:19: error: use of undeclared identifier 'CLOCK_MONOTONIC' clock_gettime(CLOCK_MONOTONIC, &now); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:101:54: error: use of undeclared identifier 'AInputEvent_getAction'; did you mean 'AKeyEvent_getAction'? int32_t action = AMOTION_EVENT_ACTION_MASK & AInputEvent_getAction(event); ^~~~~~~~~~~~~~~~~~~~~ AKeyEvent_getAction D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android/input.h:990:9: note: 'AKeyEvent_getAction' declared here int32_t AKeyEvent_getAction(const AInputEvent* key_event); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:102:32: error: use of undeclared identifier 'AMOTION_EVENT_getPointerCount' int32_t pointerCount = AMOTION_EVENT_getPointerCount(event); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:107:23: error: use of undeclared identifier 'AMOTION_EVENT_getX' float x = AMOTION_EVENT_getX(event, 0); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:108:23: error: use of undeclared identifier 'AMOTION_EVENT_getY' float y = AMOTION_EVENT_getY(event, 0); ^ 6 errors generated. ninja: build stopped: subcommand failed. C++ build system [build] failed while executing: @echo off "D:\\Users\\Administrator\\AppData\\Local\\sdk\\cmake\\3.22.1\\bin\\ninja.exe" ^ -C ^ "G:\\Users\\Administrator\\AndroidStudioProjects\\PoBeWorld\\app\\.cxx\\Debug\\2p6552u5\\x86_64" ^ native-lib from G:\Users\Administrator\AndroidStudioProjects\PoBeWorld\app * Try: > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:buildCMakeDebug[x86_64]'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:130) at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:289) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:128) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:116) at org.gradle.api.internal.tasks.execution.ProblemsTaskPathTrackingTaskExecuter.execute(ProblemsTaskPathTrackingTaskExecuter.java:41) at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314) at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:84) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47) Caused by: org.gradle.internal.UncheckedException: com.android.ide.common.process.ProcessException: ninja: Entering directory `G:\Users\Administrator\AndroidStudioProjects\PoBeWorld\app\.cxx\Debug\2p6552u5\x86_64' [1/4] Building CXX object CMakeFiles/native-lib.dir/imgui_impl_opengl3.cpp.o FAILED: CMakeFiles/native-lib.dir/imgui_impl_opengl3.cpp.o D:\Users\Administrator\AppData\Local\sdk\ndk\25.1.8937393\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=x86_64-none-linux-android26 --sysroot=D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dnative_lib_EXPORTS -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fno-limit-debug-info -fPIC -MD -MT CMakeFiles/native-lib.dir/imgui_impl_opengl3.cpp.o -MF CMakeFiles\native-lib.dir\imgui_impl_opengl3.cpp.o.d -o CMakeFiles/native-lib.dir/imgui_impl_opengl3.cpp.o -c G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp:166:19: error: use of undeclared identifier 'GL_POLYGON_MODE' glGetIntegerv(GL_POLYGON_MODE, last_polygon_mode); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp:239:70: error: no member named 'TextureId' in 'ImDrawCmd' glBindTexture(GL_TEXTURE_2D, (GLuint)(intptr_t)pcmd->TextureId); ~~~~ ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp:261:5: error: use of undeclared identifier 'glPolygonMode' glPolygonMode(GL_FRONT_AND_BACK, (GLenum)last_polygon_mode[0]); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp:298:25: error: use of overloaded operator '=' is ambiguous (with operand types 'ImTextureRef' and 'int') io.Fonts->TexID = 0; ~~~~~~~~~~~~~~~ ^ ~ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui/imgui.h:357:8: note: candidate function (the implicit copy assignment operator) struct ImTextureRef ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui/imgui.h:357:8: note: candidate function (the implicit move assignment operator) 4 errors generated. [2/4] Building CXX object CMakeFiles/native-lib.dir/native-lib.cpp.o FAILED: CMakeFiles/native-lib.dir/native-lib.cpp.o D:\Users\Administrator\AppData\Local\sdk\ndk\25.1.8937393\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=x86_64-none-linux-android26 --sysroot=D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dnative_lib_EXPORTS -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fno-limit-debug-info -fPIC -MD -MT CMakeFiles/native-lib.dir/native-lib.cpp.o -MF CMakeFiles\native-lib.dir\native-lib.cpp.o.d -o CMakeFiles/native-lib.dir/native-lib.cpp.o -c G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp:146:26: error: use of undeclared identifier 'AInputEvent_fromJava'; did you mean 'AInputQueue_fromJava'? AInputEvent* event = AInputEvent_fromJava(env, motionEvent); ^~~~~~~~~~~~~~~~~~~~ AInputQueue_fromJava D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android/input.h:1453:14: note: 'AInputQueue_fromJava' declared here AInputQueue* AInputQueue_fromJava(JNIEnv* env, jobject inputQueue) __INTRODUCED_IN(33); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp:146:18: error: cannot initialize a variable of type 'AInputEvent *' with an rvalue of type 'AInputQueue *' AInputEvent* event = AInputEvent_fromJava(env, motionEvent); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android/input.h:1394:8: note: 'AInputQueue' is not defined, but forward declared here; conversion would be valid if it was derived from 'AInputEvent' struct AInputQueue; ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp:146:26: error: 'AInputQueue_fromJava' is unavailable: introduced in Android 33 AInputEvent* event = AInputEvent_fromJava(env, motionEvent); ^ D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android/input.h:1453:14: note: 'AInputQueue_fromJava' has been explicitly marked unavailable here AInputQueue* AInputQueue_fromJava(JNIEnv* env, jobject inputQueue) __INTRODUCED_IN(33); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp:226:9: error: use of undeclared identifier 'usleep' usleep(16000); // 约60fps ^ 4 errors generated. [3/4] Building CXX object CMakeFiles/native-lib.dir/imgui_impl_android.cpp.o FAILED: CMakeFiles/native-lib.dir/imgui_impl_android.cpp.o D:\Users\Administrator\AppData\Local\sdk\ndk\25.1.8937393\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=x86_64-none-linux-android26 --sysroot=D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dnative_lib_EXPORTS -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fno-limit-debug-info -fPIC -MD -MT CMakeFiles/native-lib.dir/imgui_impl_android.cpp.o -MF CMakeFiles\native-lib.dir\imgui_impl_android.cpp.o.d -o CMakeFiles/native-lib.dir/imgui_impl_android.cpp.o -c G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:57:21: error: variable has incomplete type 'struct timespec' struct timespec now; ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:57:12: note: forward declaration of 'timespec' struct timespec now; ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:58:19: error: use of undeclared identifier 'CLOCK_MONOTONIC' clock_gettime(CLOCK_MONOTONIC, &now); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:101:54: error: use of undeclared identifier 'AInputEvent_getAction'; did you mean 'AKeyEvent_getAction'? int32_t action = AMOTION_EVENT_ACTION_MASK & AInputEvent_getAction(event); ^~~~~~~~~~~~~~~~~~~~~ AKeyEvent_getAction D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android/input.h:990:9: note: 'AKeyEvent_getAction' declared here int32_t AKeyEvent_getAction(const AInputEvent* key_event); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:102:32: error: use of undeclared identifier 'AMOTION_EVENT_getPointerCount' int32_t pointerCount = AMOTION_EVENT_getPointerCount(event); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:107:23: error: use of undeclared identifier 'AMOTION_EVENT_getX' float x = AMOTION_EVENT_getX(event, 0); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:108:23: error: use of undeclared identifier 'AMOTION_EVENT_getY' float y = AMOTION_EVENT_getY(event, 0); ^ 6 errors generated. ninja: build stopped: subcommand failed. C++ build system [build] failed while executing: @echo off "D:\\Users\\Administrator\\AppData\\Local\\sdk\\cmake\\3.22.1\\bin\\ninja.exe" ^ -C ^ "G:\\Users\\Administrator\\AndroidStudioProjects\\PoBeWorld\\app\\.cxx\\Debug\\2p6552u5\\x86_64" ^ native-lib from G:\Users\Administrator\AndroidStudioProjects\PoBeWorld\app at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:69) at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:42) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:128) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29) at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:244) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47) at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:229) at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:212) at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:195) at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:162) at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105) at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44) at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59) at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56) at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44) at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:42) at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:75) at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55) at org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50) at org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28) at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67) at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37) at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61) at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26) at org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:69) at org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:46) at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:39) at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:28) at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:189) at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:75) at org.gradle.internal.Either$Right.fold(Either.java:176) at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:62) at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73) at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48) at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:46) at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:35) at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:75) at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:53) at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:53) at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:35) at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37) at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27) at org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:49) at org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:27) at org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:71) at org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:39) at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:64) at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:35) at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:107) at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:56) at org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:64) at org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:43) at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.executeWithNonEmptySources(AbstractSkipEmptyWorkStep.java:125) at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:56) at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:36) at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38) at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36) at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23) at org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:75) at org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:41) at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.lambda$execute$0(AssignMutableWorkspaceStep.java:35) at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:289) at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:31) at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:22) at org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:40) at org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:23) at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.lambda$execute$2(ExecuteWorkBuildOperationFiringStep.java:67) at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:67) at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:39) at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:46) at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:34) at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47) at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34) at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:127) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:116) at org.gradle.api.internal.tasks.execution.ProblemsTaskPathTrackingTaskExecuter.execute(ProblemsTaskPathTrackingTaskExecuter.java:41) at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314) at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:84) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47) Caused by: com.android.ide.common.process.ProcessException: ninja: Entering directory `G:\Users\Administrator\AndroidStudioProjects\PoBeWorld\app\.cxx\Debug\2p6552u5\x86_64' [1/4] Building CXX object CMakeFiles/native-lib.dir/imgui_impl_opengl3.cpp.o FAILED: CMakeFiles/native-lib.dir/imgui_impl_opengl3.cpp.o D:\Users\Administrator\AppData\Local\sdk\ndk\25.1.8937393\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=x86_64-none-linux-android26 --sysroot=D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dnative_lib_EXPORTS -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fno-limit-debug-info -fPIC -MD -MT CMakeFiles/native-lib.dir/imgui_impl_opengl3.cpp.o -MF CMakeFiles\native-lib.dir\imgui_impl_opengl3.cpp.o.d -o CMakeFiles/native-lib.dir/imgui_impl_opengl3.cpp.o -c G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp:166:19: error: use of undeclared identifier 'GL_POLYGON_MODE' glGetIntegerv(GL_POLYGON_MODE, last_polygon_mode); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp:239:70: error: no member named 'TextureId' in 'ImDrawCmd' glBindTexture(GL_TEXTURE_2D, (GLuint)(intptr_t)pcmd->TextureId); ~~~~ ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp:261:5: error: use of undeclared identifier 'glPolygonMode' glPolygonMode(GL_FRONT_AND_BACK, (GLenum)last_polygon_mode[0]); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_opengl3.cpp:298:25: error: use of overloaded operator '=' is ambiguous (with operand types 'ImTextureRef' and 'int') io.Fonts->TexID = 0; ~~~~~~~~~~~~~~~ ^ ~ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui/imgui.h:357:8: note: candidate function (the implicit copy assignment operator) struct ImTextureRef ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui/imgui.h:357:8: note: candidate function (the implicit move assignment operator) 4 errors generated. [2/4] Building CXX object CMakeFiles/native-lib.dir/native-lib.cpp.o FAILED: CMakeFiles/native-lib.dir/native-lib.cpp.o D:\Users\Administrator\AppData\Local\sdk\ndk\25.1.8937393\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=x86_64-none-linux-android26 --sysroot=D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dnative_lib_EXPORTS -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fno-limit-debug-info -fPIC -MD -MT CMakeFiles/native-lib.dir/native-lib.cpp.o -MF CMakeFiles\native-lib.dir\native-lib.cpp.o.d -o CMakeFiles/native-lib.dir/native-lib.cpp.o -c G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp:146:26: error: use of undeclared identifier 'AInputEvent_fromJava'; did you mean 'AInputQueue_fromJava'? AInputEvent* event = AInputEvent_fromJava(env, motionEvent); ^~~~~~~~~~~~~~~~~~~~ AInputQueue_fromJava D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android/input.h:1453:14: note: 'AInputQueue_fromJava' declared here AInputQueue* AInputQueue_fromJava(JNIEnv* env, jobject inputQueue) __INTRODUCED_IN(33); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp:146:18: error: cannot initialize a variable of type 'AInputEvent *' with an rvalue of type 'AInputQueue *' AInputEvent* event = AInputEvent_fromJava(env, motionEvent); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android/input.h:1394:8: note: 'AInputQueue' is not defined, but forward declared here; conversion would be valid if it was derived from 'AInputEvent' struct AInputQueue; ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp:146:26: error: 'AInputQueue_fromJava' is unavailable: introduced in Android 33 AInputEvent* event = AInputEvent_fromJava(env, motionEvent); ^ D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android/input.h:1453:14: note: 'AInputQueue_fromJava' has been explicitly marked unavailable here AInputQueue* AInputQueue_fromJava(JNIEnv* env, jobject inputQueue) __INTRODUCED_IN(33); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/native-lib.cpp:226:9: error: use of undeclared identifier 'usleep' usleep(16000); // 约60fps ^ 4 errors generated. [3/4] Building CXX object CMakeFiles/native-lib.dir/imgui_impl_android.cpp.o FAILED: CMakeFiles/native-lib.dir/imgui_impl_android.cpp.o D:\Users\Administrator\AppData\Local\sdk\ndk\25.1.8937393\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=x86_64-none-linux-android26 --sysroot=D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dnative_lib_EXPORTS -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui -IG:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fno-limit-debug-info -fPIC -MD -MT CMakeFiles/native-lib.dir/imgui_impl_android.cpp.o -MF CMakeFiles\native-lib.dir\imgui_impl_android.cpp.o.d -o CMakeFiles/native-lib.dir/imgui_impl_android.cpp.o -c G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:57:21: error: variable has incomplete type 'struct timespec' struct timespec now; ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:57:12: note: forward declaration of 'timespec' struct timespec now; ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:58:19: error: use of undeclared identifier 'CLOCK_MONOTONIC' clock_gettime(CLOCK_MONOTONIC, &now); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:101:54: error: use of undeclared identifier 'AInputEvent_getAction'; did you mean 'AKeyEvent_getAction'? int32_t action = AMOTION_EVENT_ACTION_MASK & AInputEvent_getAction(event); ^~~~~~~~~~~~~~~~~~~~~ AKeyEvent_getAction D:/Users/Administrator/AppData/Local/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android/input.h:990:9: note: 'AKeyEvent_getAction' declared here int32_t AKeyEvent_getAction(const AInputEvent* key_event); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:102:32: error: use of undeclared identifier 'AMOTION_EVENT_getPointerCount' int32_t pointerCount = AMOTION_EVENT_getPointerCount(event); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:107:23: error: use of undeclared identifier 'AMOTION_EVENT_getX' float x = AMOTION_EVENT_getX(event, 0); ^ G:/Users/Administrator/AndroidStudioProjects/PoBeWorld/app/src/main/cpp/imgui_impl_android.cpp:108:23: error: use of undeclared identifier 'AMOTION_EVENT_getY' float y = AMOTION_EVENT_getY(event, 0); ^ 6 errors generated. ninja: build stopped: subcommand failed. C++ build system [build] failed while executing: @echo off "D:\\Users\\Administrator\\AppData\\Local\\sdk\\cmake\\3.22.1\\bin\\ninja.exe" ^ -C ^ "G:\\Users\\Administrator\\AndroidStudioProjects\\PoBeWorld\\app\\.cxx\\Debug\\2p6552u5\\x86_64" ^ native-lib from G:\Users\Administrator\AndroidStudioProjects\PoBeWorld\app at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt.execute(ExecuteProcess.kt:288) at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt$executeProcess$1.invoke(ExecuteProcess.kt:108) at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt$executeProcess$1.invoke(ExecuteProcess.kt:106) at com.android.build.gradle.internal.cxx.timing.TimingEnvironmentKt.time(TimingEnvironment.kt:32) at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt.executeProcess(ExecuteProcess.kt:106) at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt.executeProcess$default(ExecuteProcess.kt:85) at com.android.build.gradle.internal.cxx.build.CxxRegularBuilder.executeProcessBatch(CxxRegularBuilder.kt:332) at com.android.build.gradle.internal.cxx.build.CxxRegularBuilder.build(CxxRegularBuilder.kt:129) at com.android.build.gradle.tasks.ExternalNativeBuildTask$doTaskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:70) at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51) at com.android.build.gradle.tasks.ExternalNativeBuildTask.doTaskAction(ExternalNativeBuildTask.kt:145) at com.android.build.gradle.internal.tasks.UnsafeOutputsTask$taskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:65) at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51) at com.android.build.gradle.internal.tasks.UnsafeOutputsTask.taskAction(UnsafeOutputsTask.kt:63) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125) ... 117 more Caused by: com.android.ide.common.process.ProcessException: Error while executing process D:\Users\Administrator\AppData\Local\sdk\cmake\3.22.1\bin\ninja.exe with arguments {-C G:\Users\Administrator\AndroidStudioProjects\PoBeWorld\app\.cxx\Debug\2p6552u5\x86_64 native-lib} at com.android.build.gradle.internal.process.GradleProcessResult.buildProcessException(GradleProcessResult.java:73) at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:48) at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt.execute(ExecuteProcess.kt:277) ... 132 more Caused by: org.gradle.process.internal.ExecException: Process 'command 'D:\Users\Administrator\AppData\Local\sdk\cmake\3.22.1\bin\ninja.exe'' finished with non-zero exit value 1 at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:442) at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:46) ... 133 more Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/9.0-milestone-1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD FAILED in 1s 31 actionable tasks: 2 executed, 29 up-to-date
08-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值