ご回答ありがとうございます!
左様でございますか、可能であればクロスプラットフォームに優れているVisualStudioで開発をしたかったのですが、
AndroidStudioでもifdef等使えば出来なくもなさそうなので断念します。
※前日提示したDXライブラリ Ver 3.22c が少し古かったので最新版(Ver3.23)に更新してあります。
今後の為に試した事を一通り記載させて頂きます。※昨日一昨日の事ですのでエラーメッセージ等は消してしまいました。
【Visual Studio エラー内容】
ソフト | @ | A | B |
community 2017 | 〇 | 〇 | ✕ |
community 2019 | 〇 | 〇 | ✕ |
community 2022 | 〇 | ✕ | ✕ |
@ ビルドに成功した
A デバッグに成功した (四角形が表示された)
B javaを有効化してビルドに成功した
※4.Java のコードを入力する 記載の Manifest.xmlを編集しただけでエラー発生、jarファイルを読み込む以前の問題でした。
以下、質問内容が変わってしまうのですが、AndroidStudioを使用した場合もうまくいきませんでした。
【環境】
Android Studio 4.0
Build-Tools 30.0.2
NDK 23.1.7779620
Gradle Plugin 4.0.0
Gradle Ver 6.1.1
JDK 8
SDK 31
【結果】
ビルドが通らない
native-lib.cpp > "DxLib.h" に赤い波線 (file not found)
DrawBox 関数以外の全てのDxLib関数が赤文字 (Use of undeclared identifier 'TRUE')
android_main が灰色 (Function 'android_main' is never used )
MainActivity.java > public native String stringFromJNI(); が赤文字
(Cannot resolve corresponding JNI function Java_com_meca_zeros_MainActivity_stringFromJNI. Could not find
an existing file with JNI definitions in it. Please add a file with JNI definitions to the project in order to get
suggestions. )
【エラーログ】
Build command failed.
Error while executing process C:\AndroidSDK_400\cmake\3.10.2.4988404\bin\ninja.exe with arguments {-C ******プロジェクトパス******\app\.cxx\cmake\debug\armeabi-v7a native-lib}
ninja: Entering directory `******プロジェクトパス******\app\.cxx\cmake\debug\armeabi-v7a'
[1/2] Building CXX object CMakeFiles/native-lib.dir/native-lib.cpp.o
[2/2] Linking CXX shared library ******プロジェクトパス******\app\build\intermediates\cmake\debug\obj\armeabi-v7a\libnative-lib.so
FAILED: ******プロジェクトパス******/app/build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so
cmd.exe /C "cd . && C:\AndroidSDK_400\ndk\23.1.7779620\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=armv7-none-linux-androideabi16 --gcc-toolchain=C:/AndroidSDK_400/ndk/23.1.7779620/toolchains/llvm/prebuilt/windows-x86_64 --sysroot=C:/AndroidSDK_400/ndk/23.1.7779620/toolchains/llvm/prebuilt/windows-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,libnative-lib.so -o ******プロジェクトパス******\app\build\intermediates\cmake\debug\obj\armeabi-v7a\libnative-lib.so CMakeFiles/native-lib.dir/native-lib.cpp.o -LC:/DxLib_Android/プロジェクトに追加すべきファイル_Android用/armeabi-v7a -llog -landroid -lGLESv1_CM -lEGL -lGLESv2 -lOpenSLES -lm -lDxLib -lDxUseCLib -ljpeg -lpng -lzlib -ltiff -ltheora_static -lvorbis_static -lvorbisfile_static -logg_static -lbullet -lopus -latomic -lm && cd ."
ld: error: undefined symbol: __gnu_thumb1_case_uqi
>>> referenced by DxBaseImage.cpp
>>> DxBaseImage.o:(DxLib::ReverseGraphImage(DxLib::tagBASEIMAGE*)) in archive C:/DxLib_Android/プロジェクトに追加すべきファイル_Android用/armeabi-v7a\libDxLib.a
>>> referenced by DxBaseImage.cpp
>>> DxBaseImage.o:(DxLib::ReverseBaseImageH(DxLib::tagBASEIMAGE*)) in archive C:/DxLib_Android/プロジェクトに追加すべきファイル_Android用/armeabi-v7a\libDxLib.a
>>> referenced by DxBaseImage.cpp
>>> DxBaseImage.o:(DxLib::ReverseBaseImage(DxLib::tagBASEIMAGE*)) in archive C:/DxLib_Android/プロジェクトに追加すべきファイル_Android用/armeabi-v7a\libDxLib.a
>>> referenced 85 more times
ld: error: undefined symbol: __gnu_thumb1_case_uhi
>>> referenced by DxBaseImage.cpp
>>> DxBaseImage.o:(DxLib::ReverseBaseImageV(DxLib::tagBASEIMAGE*)) in archive C:/DxLib_Android/プロジェクトに追加すべきファイル_Android用/armeabi-v7a\libDxLib.a
>>> referenced by DxBaseImage.cpp
>>> DxBaseImage.o:(DxLib::DrawCircleBaseImage(DxLib::tagBASEIMAGE*, int, int, int, int, int, int, int, int)) in archive C:/DxLib_Android/プロジェクトに追加すべきファイル_Android用/armeabi-v7a\libDxLib.a
>>> referenced by DxBaseImage.cpp
>>> DxBaseImage.o:(DxLib::DrawCircleBaseImage(DxLib::tagBASEIMAGE*, int, int, int, int, int, int, int, int)) in archive C:/DxLib_Android/プロジェクトに追加すべきファイル_Android用/armeabi-v7a\libDxLib.a
>>> referenced 60 more times
ld: error: undefined symbol: __gnu_thumb1_case_si
>>> referenced by DxBaseImage.cpp
>>> DxBaseImage.o:(DxLib::GraphColorMatchBltVer2(void*, int, DxLib::tagCOLORDATA const*, void const*, int, DxLib::tagCOLORDATA const*, void const*, int, DxLib::tagCOLORDATA const*, tagPOINT, tagRECT const*, int, int, unsigned int, int, int, int, int, int)) in archive C:/DxLib_Android/プロジェクトに追加すべきファイル_Android用/armeabi-v7a\libDxLib.a
>>> referenced by DxBaseImage.cpp
>>> DxBaseImage.o:(DxLib::GraphColorMatchBltVer2(void*, int, DxLib::tagCOLORDATA const*, void const*, int, DxLib::tagCOLORDATA const*, void const*, int, DxLib::tagCOLORDATA const*, tagPOINT, tagRECT const*, int, int, unsigned int, int, int, int, int, int)) in archive C:/DxLib_Android/プロジェクトに追加すべきファイル_Android用/armeabi-v7a\libDxLib.a
>>> referenced by DxBaseImage.cpp
>>> DxBaseImage.o:(DxLib::GraphColorMatchBltVer2(void*, int, DxLib::tagCOLORDATA const*, void const*, int, DxLib::tagCOLORDATA const*, void const*, int, DxLib::tagCOLORDATA const*, tagPOINT, tagRECT const*, int, int, unsigned int, int, int, int, int, int)) in archive C:/DxLib_Android/プロジェクトに追加すべきファイル_Android用/armeabi-v7a\libDxLib.a
>>> referenced 46 more times
ld: error: undefined symbol: __gnu_thumb1_case_sqi
>>> referenced by DxBaseImage.cpp
>>> DxBaseImage.o:(DxLib::SetPixelBaseImage(DxLib::tagBASEIMAGE*, int, int, int, int, int, int)) in archive C:/DxLib_Android/プロジェクトに追加すべきファイル_Android用/armeabi-v7a\libDxLib.a
>>> referenced by DxModel.cpp
>>> DxModel.o:(DxLib::__MV1LoadTexture(void**, int*, void**, int*, int*, int*, int*, char**, char**, wchar_t**, wchar_t**, wchar_t const*, wchar_t const*, wchar_t const*, int, float, int, int, DxLib::MV1_FILE_READ_FUNC const*, bool, int, int)) in archive C:/DxLib_Android/プロジェクトに追加すべきファイル_Android用/armeabi-v7a\libDxLib.a
>>> referenced by DxModelLoader0.cpp
>>> DxModelLoader0.o:(DxLib::PStrMoveOneB(DxLib::X_PSTRING*)) in archive C:/DxLib_Android/プロジェクトに追加すべきファイル_Android用/armeabi-v7a\libDxLib.a
>>> referenced 23 more times
ld: error: undefined symbol: __gnu_thumb1_case_shi
>>> referenced by DxBaseImage.cpp
>>> DxBaseImage.o:(DxLib::SaveBaseImageToBmp_WCHAR_T(wchar_t const*, DxLib::tagBASEIMAGE const*)) in archive C:/DxLib_Android/プロジェクトに追加すべきファイル_Android用/armeabi-v7a\libDxLib.a
>>> referenced by DxChar.cpp
>>> DxChar.o:(DxLib::CL_vsnprintf(int, int, int, int, char*, unsigned int, char const*, std::__va_list)) in archive C:/DxLib_Android/プロジェクトに追加すべきファイル_Android用/armeabi-v7a\libDxLib.a
>>> referenced by DxChar.cpp
>>> DxChar.o:(DxLib::CL_vsnprintf(int, int, int, int, char*, unsigned int, char const*, std::__va_list)) in archive C:/DxLib_Android/プロジェクトに追加すべきファイル_Android用/armeabi-v7a\libDxLib.a
>>> referenced 43 more times
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
また、一番安定していた(個人的な価値観)バージョンのAndroidStudioでも試してみた所、ビルドには通りましたがデバッグで四角形が表示されませんでした。
【環境】
Android Studio ArcticFox 2020.3.1 Patch 4
Build-Tools 32.0.0
NDK 23.1.7779620
Gradle Plugin 7.0.4
Gradle Ver 7.0.2
JDK 11.0.10
SDK 31
デバッグは実機使用 (SCV40 Android 10)
【結果】
デバッグに失敗
※以下AndroidStudio 4.0 と同様
native-lib.cpp > "DxLib.h" に赤い波線 (file not found)
DrawBox 関数以外の全てのDxLib関数が赤文字 (Use of undeclared identifier 'TRUE')
android_main が灰色 (Function 'android_main' is never used )
MainActivity.java > public native String stringFromJNI(); が赤文字
【エラーログ(デバッグ時)】
※赤文字は印(★)してあります
12/16 14:43:04: Launching 'app' on samsung SCV40.
Install successfully finished in 4 s 365 ms.
$ adb shell am start -n "com.***プロジェクト名***/android.app.NativeActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Waiting for application to come online: com.***プロジェクト名*** | com.***プロジェクト名***.test
Waiting for application to come online: com.***プロジェクト名*** | com.***プロジェクト名***.test
Connected to process 17502 on device 'samsung-scv40-****デバイスID****'.
Connecting to ***プロジェクト名***
Waiting for application to come online: com.***プロジェクト名*** | com.***プロジェクト名***.test
★Waiting for application to start debug server
Connecting to ***プロジェクト名***
Waiting for application to come online: com.***プロジェクト名*** | com.***プロジェクト名***.test
★Waiting for application to start debug server
Connecting to ***プロジェクト名***
Waiting for application to come online: com.***プロジェクト名*** | com.***プロジェクト名***.test
★Waiting for application to start debug server
Connecting to ***プロジェクト名***
Waiting for application to come online: com.***プロジェクト名*** | com.***プロジェクト名***.test
★Waiting for application to start debug server
Connecting to ***プロジェクト名***
Waiting for application to come online: com.***プロジェクト名*** | com.***プロジェクト名***.test
★Waiting for application to start debug server
Connecting to ***プロジェクト名***
Waiting for application to come online: com.***プロジェクト名*** | com.***プロジェクト名***.test
★Waiting for application to start debug server
Connecting to ***プロジェクト名***
Waiting for application to come online: com.***プロジェクト名*** | com.***プロジェクト名***.test
★Waiting for application to start debug server
Connecting to ***プロジェクト名***
Waiting for application to come online: com.***プロジェクト名*** | com.***プロジェクト名***.test
★Waiting for application to start debug server
Connecting to ***プロジェクト名***
Waiting for application to come online: com.***プロジェクト名*** | com.***プロジェクト名***.test
★Waiting for application to start debug server
Connecting to ***プロジェクト名***
Waiting for application to come online: com.***プロジェクト名*** | com.***プロジェクト名***.test
★Waiting for application to start debug server
Connecting to ***プロジェクト名***
Waiting for application to come online: com.***プロジェクト名*** | com.***プロジェクト名***.test
★Waiting for application to start debug server
Connecting to ***プロジェクト名***
Waiting for application to come online: com.***プロジェクト名*** | com.***プロジェクト名***.test
★Waiting for application to start debug server
Connecting to ***プロジェクト名***
Waiting for application to come online: com.***プロジェクト名*** | com.***プロジェクト名***.test
★Waiting for application to start debug server
Connecting to ***プロジェクト名***
Waiting for application to come online: com.***プロジェクト名*** | com.***プロジェクト名***.test
★Waiting for application to start debug server
★Could not connect to remote process. Aborting debug session.
また何か分かり次第ご報告させて頂きます。
お手数をお掛けしますが何卒宜しくお願い申し上げます。