トップページ > 記事閲覧
Android版のプロジェクト作成でビルドエラー
名前:green 日時: 2022/12/20 18:21

この質問は Android Studio による Androidアプリ開発でのDXライブラリの使い方 dxlib.xsrv.jp/use/dxuse_android_studio.html を参考にしてます。 AndroidStudio 最新版のAndroid Studio Dolphin | 2021.3.1 Patch 1と Android11実機を使用して レクチャーどおりにプロジェクト作成を試していますが ビルドすると以下のエラーがでてきてしまいます ライブラリ位置 E:/Android/dxlib プロジェクト E/:AndroidProject/test ______________________________________________________________________________________________________Rebuild Project Executing tasks: [:app:assembleDebug] in project E:\Android Project\test * What went wrong: Execution failed for task ':app:processDebugResources'. > java.io.IOException: Couldn't delete E:\Android Project\test\app\build\intermediates\compile_and_runtime_not_namespaced_r_class_jar\debug\R.jar * Try: > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDebugResources'. at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:38) 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:204) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) 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:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:333) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:320) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:313) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:299) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:143) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:227) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:218) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:140) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) Caused by: java.io.UncheckedIOException: java.io.IOException: Couldn't delete E:\Android Project\test\app\build\intermediates\compile_and_runtime_not_namespaced_r_class_jar\debug\R.jar at org.gradle.internal.execution.steps.RemovePreviousOutputsStep$2.visitOutputProperty(RemovePreviousOutputsStep.java:126) at org.gradle.api.internal.tasks.execution.TaskExecution.visitOutputs(TaskExecution.java:344) at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.cleanupExclusivelyOwnedOutputs(RemovePreviousOutputsStep.java:110) at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:64) at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38) at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48) at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36) at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41) at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74) at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55) ... 87 more * Get more help at help.gradle.org BUILD FAILED in 1s 34 actionable tasks: 9 executed, 25 up-to-date ______________________________________________________________________________________________________Ganerate Signed Bundle-APK Executing tasks: [:app:assembleRelease] in project E:\Android Project\test > Task :app:createReleaseVariantModel > Task :app:preBuild UP-TO-DATE > Task :app:preReleaseBuild UP-TO-DATE > Task :app:compileReleaseAidl NO-SOURCE > Task :app:compileReleaseRenderscript NO-SOURCE > Task :app:dataBindingMergeDependencyArtifactsRelease > Task :app:generateReleaseResValues > Task :app:generateReleaseResources > Task :app:packageReleaseResources > Task :app:generateReleaseBuildConfig > Task :app:javaPreCompileRelease > Task :app:checkReleaseAarMetadata > Task :app:parseReleaseLocalResources > Task :app:mapReleaseSourceSetPaths > Task :app:createReleaseCompatibleScreenManifests > Task :app:extractDeepLinksRelease > Task :app:processReleaseMainManifest package="com.example.test" found in source AndroidManifest.xml: E:\Android Project\test\app\src\main\AndroidManifest.xml. Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated. Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: developer.android.com/studio/build/configure-app-module#set-namespace This migration can be done automatically using the AGP Upgrade Assistant, please refer to developer.android.com/studio/build/agp-upgrade-assistant for more information. > Task :app:processReleaseManifest > Task :app:extractProguardFiles > Task :app:configureCMakeRelWithDebInfo[arm64-v8a] > Task :app:buildCMakeRelWithDebInfo[arm64-v8a] > Task :app:configureCMakeRelWithDebInfo[armeabi-v7a] > Task :app:buildCMakeRelWithDebInfo[armeabi-v7a] FAILED C/C++: ninja: Entering directory `E:\Android Project\test\app\.cxx\RelWithDebInfo\1m3o5h5p\armeabi-v7a' C/C++: ld: error: undefined symbol: __gnu_thumb1_case_uqi C/C++: ld: error: undefined symbol: __gnu_thumb1_case_uhi C/C++: ld: error: undefined symbol: __gnu_thumb1_case_si C/C++: ld: error: undefined symbol: __gnu_thumb1_case_sqi C/C++: ld: error: undefined symbol: __gnu_thumb1_case_shi C/C++: clang++: error: linker command failed with exit code 1 (use -v to see invocation) > Task :app:configureCMakeRelWithDebInfo[x86] > Task :app:mergeReleaseResources > Task :app:buildCMakeRelWithDebInfo[x86] FAILED C/C++: ninja: Entering directory `E:\Android Project\test\app\.cxx\RelWithDebInfo\1m3o5h5p\x86' C/C++: ld: error: undefined hidden symbol: __stack_chk_fail_local C/C++: clang++: error: linker command failed with exit code 1 (use -v to see invocation) ============================================================================== 2: Task failed with an exception. ----------- * What went wrong: Execution failed for task ':app:buildCMakeRelWithDebInfo[x86]'. > com.android.ide.common.process.ProcessException: ninja: Entering directory `E:\Android Project\test\app\.cxx\RelWithDebInfo\1m3o5h5p\x86' [1/2] Building CXX object CMakeFiles/native-lib.dir/native-lib.cpp.o [2/2] Linking CXX shared library "E:\Android Project\test\app\build\intermediates\cxx\RelWithDebInfo\1m3o5h5p\obj\x86\libnative-lib.so" FAILED: E:/Android Project/test/app/build/intermediates/cxx/RelWithDebInfo/1m3o5h5p/obj/x86/libnative-lib.so cmd.exe /C "cd . && C:\Users\me616\AppData\Local\Android\Sdk\ndk\23.1.7779620\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=i686-none-linux-android26 --gcc-toolchain=C:/Users/me616/AppData/Local/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/windows-x86_64 --sysroot=C:/Users/me616/AppData/Local/Android/Sdk/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 -Wformat -Werror=format-security -O2 -g -DNDEBUG -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,libnative-lib.so -o "E:\Android Project\test\app\build\intermediates\cxx\RelWithDebInfo\1m3o5h5p\obj\x86\libnative-lib.so" CMakeFiles/native-lib.dir/native-lib.cpp.o -Le:/Android/dxlib/x86 -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 hidden symbol: __stack_chk_fail_local >>> referenced by DxBaseImage.cpp >>> DxBaseImage.o:(DxLib::LoadTargaImage(DxLib::tagSTREAMDATA*, DxLib::tagBASEIMAGE*, int)) in archive e:/Android/dxlib/x86\libDxLib.a >>> referenced by DxBaseImage.cpp >>> DxBaseImage.o:(DxLib::ReadJpegExif(char const*, unsigned char*, unsigned int)) in archive e:/Android/dxlib/x86\libDxLib.a >>> referenced by DxBaseImage.cpp >>> DxBaseImage.o:(DxLib::ReadJpegExifWithStrLen(char const*, unsigned int, unsigned char*, unsigned int)) in archive e:/Android/dxlib/x86\libDxLib.a >>> referenced 627 more times clang++: error: linker command failed with exit code 1 (use -v to see invocation) ninja: build stopped: subcommand failed. C++ build system [build] failed while executing: @echo off "C:\\Users\\me616\\AppData\\Local\\Android\\Sdk\\cmake\\3.18.1\\bin\\ninja.exe" -C ^ "E:\\Android Project\\test\\app\\.cxx\\RelWithDebInfo\\1m3o5h5p\\x86" native-lib from E:\Android Project\test\app ______________________________________________________________________________________________________ 上記のエラーメッセージ以外で気になった部分は MainActivity.javaコード内の private ActivityMainBinding binding; のbindingの部分に赤破線が出ています。 public native String stringFromJNI(); のstringFromJNI()の部分に平破線が出ています。 他に記述できる情報もありませんが あまりにも難解なので質問させていただきました。
メンテ

Page: 1 |

Re: Android版のプロジェクト作成でビルドエラー ( No.1 )
名前:green 日時:2022/12/20 21:16

dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=5405 こちらの質問者さんの場合と全く同じような内容です、が しかし当方の環境では症状変わらずで改善できませんでした。
メンテ
Re: Android版のプロジェクト作成でビルドエラー ( No.2 )
名前:green 日時:2022/12/21 17:26

正常にビルドが通るようになったので報告です。 こちらのarmeabi-v7a x86をビルド対象から外すというスレッドを参考にしました dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=5390 まず最初にAndroidStudioを完全アンインスールしてから Android Studio Dolphin | 2021.3.1をインストールしました。 つぎに新規作成時のToolChain DefaultからC++17に変更 buld.gradle(app)にndk { abiFilters 'arm64-v8a' }を追加 sdk manager>show package details>CMake 3.18.1と3.22,1にチェック sync project with gradle fileを実行 private ActivityMainBinding bindingのbindingの部分は警告マーク なのは相変わらずですが。 このような方法ですが実行すると正常に動作するようになりました。 しかし公式サンプルと記述が微妙に違ってくるので これでもいいのかどうか半信半疑ではあります Executing tasks: [:app:bundleRelease] in project E:\Android Project\test > Task :app:preBuild UP-TO-DATE > Task :app:preReleaseBuild UP-TO-DATE > Task :app:compileReleaseRenderscript NO-SOURCE > Task :app:generateReleaseResValues > Task :app:mapReleaseSourceSetPaths > Task :app:generateReleaseResources > Task :app:createReleaseCompatibleScreenManifests > Task :app:extractDeepLinksRelease > Task :app:processReleaseMainManifest package="com.example.test" found in source AndroidManifest.xml: E:\Android Project\test\app\src\main\AndroidManifest.xml. Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated. Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: developer.android.com/studio/build/configure-app-module#set-namespace This migration can be done automatically using the AGP Upgrade Assistant, please refer to developer.android.com/studio/build/agp-upgrade-assistant for more information. BUILD SUCCESSFUL in 21s 46 actionable tasks: 46 executed
メンテ
Re: Android版のプロジェクト作成でビルドエラー ( No.3 )
名前:管理人 日時:2022/12/22 01:33

自力で解決できたとのことでなによりです&ご情報ありがとうございます m(_ _)m DXライブラリ Android版のライブラリファイル( 拡張子aのファイル )は Visual Studio で作成しているのですが、使用している NDK のバージョンが Android Studio と異なるためにビルドエラーが発生してしまうようです 後日 Visual Studio で使用する NDK のバージョンを上げることができるか試してみようと思います m(_ _;m
メンテ
Re: Android版のプロジェクト作成でビルドエラー ( No.4 )
名前:green 日時:2022/12/22 16:34

いえいえ当方は完全にAndroidStudio初心者ですので じつはビルドの問題を解決できたのかどうかさえわかっていません。 例えばarmeabi-v7a x86をビルドから外すことでなにか後々に問題が起きる ようなことがあるものでしょうか。 Android全般の知識不足もありそのあたりが気になっているところです。
メンテ
Re: Android版のプロジェクト作成でビルドエラー ( No.5 )
名前:管理人 日時:2022/12/23 01:22

armeabi-v7a や x86 は 32bit CPU のアーキテクチャ名ですので、それを対象としたビルドというのは 32bit CPU 向けの実行バイナリのビルドということになります 32bit CPU 向けの実行バイナリを生成しないということは、64bitアプリに対応していない CPU ( 32bit CPU ) を 搭載している Android端末では動作しないということになります ただ、こちらのブログ記事によると <Android端末を買うなら64bitを!> https://autofrep.net/64bit/ 2015年から 64bit CPU を搭載した Android端末が登場し始め 2018年以降はほぼ 64bit CPU を搭載した端末しか新発売されていないとのことなので 32bit CPU 向けの実行バイナリが含まれていなくても、アプリが実行できない Android端末を 所持している人は少数かもしれません ( 因みに Google Play は 64bit CPU 向けの実行バイナリさえ含まれていればアプリを登録することができます )
メンテ
Re: Android版のプロジェクト作成でビルドエラー ( No.6 )
名前:green 日時:2022/12/23 02:41

なるほどです。Google Playでは32bitサポートが終了していたのですか Android端末はサイクルが早くて 実機の視点で見るとほぼ64ビットということになりそうですね。 armeabi-v7aについてもおおむね理解できました。 ひとまず解決とさせていただきます。ありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存