netpyoung / unity.webp

:art: WebP made easy for Unity3d
https://netpyoung.github.io/unity.webp/
MIT License
237 stars 28 forks source link

Unity2021 export android #44

Open cyy950611 opened 2 years ago

cyy950611 commented 2 years ago

Building Library/Bee/artifacts/Android/iz17e/hque_unity.webp.o failed with output: /Users/bigcool/workspace/unitySpace/SourceCode/Unity2021Test/Library/Bee/artifacts/Android/il2cppOutput/cpp/unity.webp.cpp(7235,3): error: void function '_pad7_e__FixedBuffer_get_Item_mA1EE3C599E1F6A26BAF7D116B74977B450C3FD65' should not return a value [-Wreturn-type] return (void**)(((intptr_t)il2cpp_codegen_add((intptr_t)((uintptr_t)L_1), ((intptr_t)il2cpp_codegen_multiply(((intptr_t)L_2), (int32_t)L_3)))));

cant build apk

netpyoung commented 2 years ago

yes. I also reproduce that bug on 2021.3.2f1 / 2021.3.3f1 both. but not in 2020.3.30f1.

Building Library\Bee\artifacts\Android\d8kzr\8zwe_unity.webp.o failed with output:
C:\prj\unity.webp\unity_project\Library\Bee\artifacts\Android\il2cppOutput\cpp\unity.webp.cpp(7235,3): error: void function '_pad7_e__FixedBuffer_get_Item_mA1EE3C599E1F6A26BAF7D116B74977B450C3FD65' should not return a value [-Wreturn-type]
                return (void**)(((intptr_t)il2cpp_codegen_add((intptr_t)((uintptr_t)L_1), ((intptr_t)il2cpp_codegen_multiply(((intptr_t)L_2), (int32_t)L_3)))));
                ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/prj/unity.webp/unity_project/Library/Bee/artifacts/Android/il2cppOutput/cpp/unity.webp.cpp:1:
In file included from C:/Program Files/Unity/Hub/Editor/2021.3.3f1/Editor/Data/il2cpp/libil2cpp/pch\pch-cpp.hpp:6:
In file included from C:/Program Files/Unity/Hub/Editor/2021.3.3f1/Editor/Data/il2cpp/libil2cpp\codegen/il2cpp-codegen.h:10:
In file included from C:/Program Files/Unity/Hub/Editor/2021.3.3f1/Editor/Data/il2cpp/libil2cpp\codegen/il2cpp-codegen-il2cpp.h:3:
C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\il2cpp\libil2cpp\codegen\il2cpp-codegen-common-small.h(34,20): warning: implicit conversion from 'long' to 'int' changes value from -9223372036854775808 to 0 [-Wconstant-conversion]
            return INT64_MIN;
            ~~~~~~ ^~~~~~~~~
C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\NDK\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\stdint.h(187,56): note: expanded from macro 'INT64_MIN'
#define INT64_MIN        (INT64_C(-9223372036854775807)-1)
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
C:\prj\unity.webp\unity_project\Library\Bee\artifacts\Android\il2cppOutput\cpp\unity.webp.cpp(9038,31): note: in instantiation of function template specialization 'il2cpp_codegen_cast_double_to_int<int>' requested here
                *((int32_t*)L_0) = (int32_t)il2cpp_codegen_cast_double_to_int<int32_t>(((float)il2cpp_codegen_multiply(((float)L_2), L_3)));
                                            ^
1 warning and 1 error generated.
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

================
Building Library\Bee\artifacts\Android\iz17e\8zwe_unity.webp.o failed with output:
C:\prj\unity.webp\unity_project\Library\Bee\artifacts\Android\il2cppOutput\cpp\unity.webp.cpp(7235,3): error: void function '_pad7_e__FixedBuffer_get_Item_mA1EE3C599E1F6A26BAF7D116B74977B450C3FD65' should not return a value [-Wreturn-type]
                return (void**)(((intptr_t)il2cpp_codegen_add((intptr_t)((uintptr_t)L_1), ((intptr_t)il2cpp_codegen_multiply(((intptr_t)L_2), (int32_t)L_3)))));
                ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/prj/unity.webp/unity_project/Library/Bee/artifacts/Android/il2cppOutput/cpp/unity.webp.cpp:1:
In file included from C:/Program Files/Unity/Hub/Editor/2021.3.3f1/Editor/Data/il2cpp/libil2cpp/pch\pch-cpp.hpp:6:
In file included from C:/Program Files/Unity/Hub/Editor/2021.3.3f1/Editor/Data/il2cpp/libil2cpp\codegen/il2cpp-codegen.h:10:
In file included from C:/Program Files/Unity/Hub/Editor/2021.3.3f1/Editor/Data/il2cpp/libil2cpp\codegen/il2cpp-codegen-il2cpp.h:3:
C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\il2cpp\libil2cpp\codegen\il2cpp-codegen-common-small.h(34,20): warning: implicit conversion from 'long long' to 'int' changes value from -9223372036854775808 to 0 [-Wconstant-conversion]
            return INT64_MIN;
            ~~~~~~ ^~~~~~~~~
C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\NDK\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\stdint.h(187,56): note: expanded from macro 'INT64_MIN'
#define INT64_MIN        (INT64_C(-9223372036854775807)-1)
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
C:\prj\unity.webp\unity_project\Library\Bee\artifacts\Android\il2cppOutput\cpp\unity.webp.cpp(9038,31): note: in instantiation of function template specialization 'il2cpp_codegen_cast_double_to_int<int>' requested here
                *((int32_t*)L_0) = (int32_t)il2cpp_codegen_cast_double_to_int<int32_t>(((float)il2cpp_codegen_multiply(((float)L_2), L_3)));
                                            ^
1 warning and 1 error generated.
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

==================
BuildFailedException: Incremental Player build failed!
UnityEditor.Modules.BeeBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args) (at <31b86d204baf45de8328f2d1261a79f7>:0)
UnityEditor.Modules.DefaultBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at <31b86d204baf45de8328f2d1261a79f7>:0)
UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at <089eca9a0a77417a901dda0093fda7f3>:0)
UnityEditor.PostprocessBuildPlayer.Postprocess (UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target, System.Int32 subtarget, System.String installPath, System.String companyName, System.String productName, System.Int32 width, System.Int32 height, UnityEditor.BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at <31b86d204baf45de8328f2d1261a79f7>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)

==================
Build completed with a result of 'Failed' in 125 seconds (125313 ms)
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)
==================

UnityEditor.BuildPlayerWindow+BuildMethodException: 4 errors
  at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (UnityEditor.BuildPlayerOptions options) [0x002da] in <31b86d204baf45de8328f2d1261a79f7>:0 
  at UnityEditor.BuildPlayerWindow.CallBuildMethods (System.Boolean askForBuildLocation, UnityEditor.BuildOptions defaultBuildOptions) [0x00080] in <31b86d204baf45de8328f2d1261a79f7>:0 
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)
netpyoung commented 2 years ago

after Comment out _pad7_e__FixedBuffer's index getter - https://github.com/netpyoung/unity.webp/commit/ae79b8a624a6c5f60f39530fbb8c6d942852d994

It can be built on 2021.3.3f1

cyy950611 commented 2 years ago

Thank you very much.

netpyoung commented 2 years ago

I raised this issue to unity and now that is public tracked - https://issuetracker.unity3d.com/issues/il2cpp-build-fails-when-code-has-public-ref-void-star-this-int-index-function