如何让我的 google play 应用支持更多设备?
Posted
技术标签:
【中文标题】如何让我的 google play 应用支持更多设备?【英文标题】:How can I have my google play app support more devices? 【发布时间】:2020-12-31 00:51:22 【问题描述】:我最近在 Google Play 商店上发布了我的第一个应用程序,但由于我对编程很陌生,我不确定如何解决我目前遇到的问题。 你看,Google Play 控制台告诉我该应用只支持 2006 年的设备,尽管我看不出这是为什么。
设置和东西: 我使用 Unity 和 C# 来创建应用程序。在统一引擎中,在构建设置下,我将最低 API 级别设置为 19,并将目标 API 设置为自动(最高安装)。 最初,我只是让 Unity 为游戏创建清单文件,但为了尝试解决我的问题,我创建了一个新的清单文件。我将它放在资产中,在一个名为 android 的文件夹中,该文件夹位于一个名为 plugins 的文件夹中(一些教程告诉我这样做)。清单文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<!-- GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN-->
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.player"
xmlns:tools="http://schemas.android.com/tools">
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />
<application>
<activity android:name="com.unity3d.player.UnityPlayerActivity"
android:theme="@style/UnityThemeSelector">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
</activity>
</application>
</manifest>
我已将应用程序发布到 Google Play 商店,但在除 2006 之外的所有设备上它只是显示
此版本与您的设备不兼容
有人知道我该如何解决这个问题吗?
谢谢!
另外,我应该提到我向 Google Play 开发者支持发送了一封电子邮件,我收到了这样的回复:
你好,
感谢您联系 Google Play 开发者支持。
我了解您想弄清楚为什么您的设备是三星 Galaxy Note9,与您的应用程序不兼容。我检查了一些 我这边的事情,看到设备的以下版本是 不兼容的原因如下:
运行 Android SDK 29 的 Galaxy Note9:
不支持 GL 纹理:GL_AMD_compressed_ATC_texture, GL_AMD_performance_monitor, GL_ANDROID_extension_pack_es31a, GL_APPLE_texture_2D_limited_npot,GL_ARB_vertex_buffer_object, GL_ARM_shader_framebuffer_fetch_depth_stencil, GL_EXT_EGL_image_array, GL_EXT_EGL_image_external_wrap_modes,GL_EXT_EGL_image_storage, GL_EXT_YUV_target,GL_EXT_blend_func_extended, GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage, GL_EXT_clip_control,GL_EXT_clip_cull_distance, GL_EXT_color_buffer_float, GL_EXT_color_buffer_half_float, GL_EXT_copy_image、GL_EXT_debug_label、GL_EXT_debug_marker、 GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query, GL_EXT_draw_buffers_indexed, GL_EXT_external_buffer, GL_EXT_fragment_invocation_density、GL_EXT_geometry_shader、 GL_EXT_gpu_shader5、GL_EXT_memory_object、GL_EXT_memory_object_fd、 GL_EXT_multisampled_render_to_texture, GL_EXT_multisampled_render_to_texture2, GL_EXT_primitive_bounding_box, GL_EXT_protected_textures, GL_EXT_read_format_bgra, GL_EXT_robustness, GL_EXT_sRGB、GL_EXT_sRGB_write_control、 GL_EXT_shader_framebuffer_fetch, GL_EXT_shader_io_blocks, GL_EXT_shader_non_constant_global_initializers, GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp, GL_EXT_texture_buffer, GL_EXT_texture_cube_map_array, GL_EXT_texture_filter_anisotropic, GL_EXT_texture_format_BGRA8888, GL_EXT_texture_format_sRGB_override,GL_EXT_texture_norm16, GL_EXT_texture_sRGB_R8、GL_EXT_texture_sRGB_decode、 GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced, GL_KHR_blend_equation_advanced_coherent、GL_KHR_debug、 GL_KHR_no_error, GL_KHR_robust_buffer_access_behavior, GL_KHR_texture_compression_astc_hdr, GL_KHR_texture_compression_astc_ldr, GL_NV_shader_noperspective_interpolation, GL_OES_EGL_image, GL_OES_EGL_image_external,GL_OES_EGL_image_external_essl3, GL_OES_EGL_sync,GL_OES_blend_equation_separate, GL_OES_blend_func_separate,GL_OES_blend_subtract, GL_OES_compressed_ETC1_RGB8_texture, GL_OES_compressed_paletted_texture, GL_OES_depth24, GL_OES_depth_texture, GL_OES_depth_texture_cube_map, GL_OES_draw_texture, GL_OES_element_index_uint, GL_OES_framebuffer_object, GL_OES_get_program_binary, GL_OES_matrix_palette, GL_OES_packed_depth_stencil, GL_OES_point_size_array、GL_OES_point_sprite、GL_OES_read_format、 GL_OES_rgb8_rgba8、GL_OES_sample_shading、GL_OES_sample_variables、 GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation, GL_OES_standard_derivatives, GL_OES_stencil_wrap, GL_OES_surfaceless_context,GL_OES_texture_3D, GL_OES_texture_compression_astc, GL_OES_texture_cube_map, GL_OES_texture_env_crossbar,GL_OES_texture_float, GL_OES_texture_float_linear,GL_OES_texture_half_float, GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat, GL_OES_texture_npot, GL_OES_texture_stencil8, GL_OES_texture_storage_multisample_2d_array, GL_OES_texture_view, GL_OES_vertex_array_object, GL_OES_vertex_half_float, GL_OVR_multiview, GL_OVR_multiview2, GL_OVR_multiview_multisampled_render_to_texture, GL_QCOM_YUV_texture_gather、GL_QCOM_alpha_test、GL_QCOM_extended_get、 GL_QCOM_shader_framebuffer_fetch_noncoherent, GL_QCOM_shader_framebuffer_fetch_rate, GL_QCOM_texture_foveated, GL_QCOM_texture_foveated_subsampled_layout,GL_QCOM_tiled_rendering
运行 Android SDK 27 的 Galaxy Note9:该应用仅支持 SDK 29+,因此 没有 29 岁以下运行 SDK 的设备可以安装该应用程序。然而,这 版本也不支持 GL 纹理(请注意,这是 与上面的设置不同):
GL_AMD_compressed_ATC_texture, GL_AMD_performance_monitor, GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot, GL_ARB_vertex_buffer_object, GL_ARM_shader_framebuffer_fetch_depth_stencil, GL_EXT_EGL_image_array, GL_EXT_YUV_target, GL_EXT_blit_framebuffer_params, GL_EXT_buffer_storage,GL_EXT_clip_cull_distance, GL_EXT_color_buffer_float, GL_EXT_color_buffer_half_float, GL_EXT_copy_image、GL_EXT_debug_label、GL_EXT_debug_marker、 GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query, GL_EXT_draw_buffers_indexed, GL_EXT_external_buffer, GL_EXT_geometry_shader、GL_EXT_gpu_shader5、GL_EXT_memory_object、 GL_EXT_memory_object_fd,GL_EXT_multisampled_render_to_texture, GL_EXT_multisampled_render_to_texture2, GL_EXT_primitive_bounding_box, GL_EXT_protected_textures、GL_EXT_robustness、GL_EXT_sRGB、 GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch, GL_EXT_shader_io_blocks, GL_EXT_shader_non_constant_global_initializers, GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp, GL_EXT_texture_buffer, GL_EXT_texture_cube_map_array, GL_EXT_texture_filter_anisotropic, GL_EXT_texture_format_BGRA8888, GL_EXT_texture_norm16、GL_EXT_texture_sRGB_R8、 GL_EXT_texture_sRGB_decode, GL_EXT_texture_type_2_10_10_10_REV, GL_KHR_blend_equation_advanced, GL_KHR_blend_equation_advanced_coherent、GL_KHR_debug、 GL_KHR_no_error, GL_KHR_texture_compression_astc_hdr, GL_KHR_texture_compression_astc_ldr, GL_NV_shader_noperspective_interpolation, GL_OES_EGL_image, GL_OES_EGL_image_external,GL_OES_EGL_image_external_essl3, GL_OES_EGL_sync,GL_OES_blend_equation_separate, GL_OES_blend_func_separate,GL_OES_blend_subtract, GL_OES_compressed_ETC1_RGB8_texture, GL_OES_compressed_paletted_texture, GL_OES_depth24, GL_OES_depth_texture, GL_OES_depth_texture_cube_map, GL_OES_draw_texture, GL_OES_element_index_uint, GL_OES_framebuffer_object, GL_OES_get_program_binary, GL_OES_matrix_palette, GL_OES_packed_depth_stencil, GL_OES_point_size_array、GL_OES_point_sprite、GL_OES_read_format、 GL_OES_rgb8_rgba8、GL_OES_sample_shading、GL_OES_sample_variables、 GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation, GL_OES_standard_derivatives, GL_OES_stencil_wrap, GL_OES_surfaceless_context,GL_OES_texture_3D, GL_OES_texture_compression_astc, GL_OES_texture_cube_map, GL_OES_texture_env_crossbar,GL_OES_texture_float, GL_OES_texture_float_linear,GL_OES_texture_half_float, GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat, GL_OES_texture_npot, GL_OES_texture_stencil8, GL_OES_texture_storage_multisample_2d_array, GL_OES_vertex_array_object, GL_OES_vertex_half_float, GL_OVR_multiview, GL_OVR_multiview2, GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test, GL_QCOM_extended_get, GL_QCOM_shader_framebuffer_fetch_noncoherent, GL_QCOM_texture_foveated, GL_QCOM_tiled_rendering
运行 Android 28 的 Galaxy Note9:同样,运行任何 SDK 的设备更低 超过 29 与应用程序不兼容。不过,这个版本的 由于不支持 GL 纹理,此设备也不兼容 (与上述两个不同的集合):
GL_AMD_compressed_ATC_texture, GL_AMD_performance_monitor, GL_ANDROID_extension_pack_es31a,GL_APPLE_texture_2D_limited_npot, GL_ARB_vertex_buffer_object, GL_ARM_shader_framebuffer_fetch_depth_stencil, GL_EXT_EGL_image_array, GL_EXT_EGL_image_external_wrap_modes,GL_EXT_EGL_image_storage, GL_EXT_YUV_target,GL_EXT_blend_func_extended, GL_EXT_blit_framebuffer_params,GL_EXT_buffer_storage, GL_EXT_clip_control,GL_EXT_clip_cull_distance, GL_EXT_color_buffer_float, GL_EXT_color_buffer_half_float, GL_EXT_copy_image、GL_EXT_debug_label、GL_EXT_debug_marker、 GL_EXT_discard_framebuffer,GL_EXT_disjoint_timer_query, GL_EXT_draw_buffers_indexed, GL_EXT_external_buffer, GL_EXT_geometry_shader、GL_EXT_gpu_shader5、GL_EXT_memory_object、 GL_EXT_memory_object_fd,GL_EXT_multisampled_render_to_texture, GL_EXT_multisampled_render_to_texture2, GL_EXT_primitive_bounding_box, GL_EXT_protected_textures、GL_EXT_robustness、GL_EXT_sRGB、 GL_EXT_sRGB_write_control,GL_EXT_shader_framebuffer_fetch, GL_EXT_shader_io_blocks, GL_EXT_shader_non_constant_global_initializers, GL_EXT_tessellation_shader,GL_EXT_texture_border_clamp, GL_EXT_texture_buffer, GL_EXT_texture_cube_map_array, GL_EXT_texture_filter_anisotropic, GL_EXT_texture_format_BGRA8888, GL_EXT_texture_format_sRGB_override,GL_EXT_texture_norm16, GL_EXT_texture_sRGB_R8、GL_EXT_texture_sRGB_decode、 GL_EXT_texture_type_2_10_10_10_REV,GL_KHR_blend_equation_advanced, GL_KHR_blend_equation_advanced_coherent、GL_KHR_debug、 GL_KHR_no_error, GL_KHR_robust_buffer_access_behavior, GL_KHR_texture_compression_astc_hdr, GL_KHR_texture_compression_astc_ldr, GL_NV_shader_noperspective_interpolation, GL_OES_EGL_image, GL_OES_EGL_image_external,GL_OES_EGL_image_external_essl3, GL_OES_EGL_sync,GL_OES_blend_equation_separate, GL_OES_blend_func_separate,GL_OES_blend_subtract, GL_OES_compressed_ETC1_RGB8_texture, GL_OES_compressed_paletted_texture, GL_OES_depth24, GL_OES_depth_texture, GL_OES_depth_texture_cube_map, GL_OES_draw_texture, GL_OES_element_index_uint, GL_OES_framebuffer_object, GL_OES_get_program_binary, GL_OES_matrix_palette, GL_OES_packed_depth_stencil, GL_OES_point_size_array、GL_OES_point_sprite、GL_OES_read_format、 GL_OES_rgb8_rgba8、GL_OES_sample_shading、GL_OES_sample_variables、 GL_OES_shader_image_atomic,GL_OES_shader_multisample_interpolation, GL_OES_standard_derivatives, GL_OES_stencil_wrap, GL_OES_surfaceless_context,GL_OES_texture_3D, GL_OES_texture_compression_astc, GL_OES_texture_cube_map, GL_OES_texture_env_crossbar,GL_OES_texture_float, GL_OES_texture_float_linear,GL_OES_texture_half_float, GL_OES_texture_half_float_linear,GL_OES_texture_mirrored_repeat, GL_OES_texture_npot, GL_OES_texture_stencil8, GL_OES_texture_storage_multisample_2d_array, GL_OES_vertex_array_object, GL_OES_vertex_half_float, GL_OVR_multiview, GL_OVR_multiview2, GL_OVR_multiview_multisampled_render_to_texture,GL_QCOM_alpha_test, GL_QCOM_extended_get, GL_QCOM_shader_framebuffer_fetch_noncoherent, GL_QCOM_texture_foveated, GL_QCOM_tiled_rendering
我们无法告诉您如何处理 GL 纹理,因为我们没有接受过相关培训 应用程序开发,因此您可能需要咨询公共开发人员 论坛,例如 ***.com 上的论坛
要解决 Android SDK 问题,您需要更改应用的 manifest 以便 minSDK 值更低。
我希望这会有所帮助!请让我知道您是否有其他问题或 担心。
向 Pete Google Play 开发者支持致敬
【问题讨论】:
您的清单仍然有允许 Unity 覆盖它的行。其中没有设置 minSDK 值。我建议使用 APKTool ibotpeaches.github.io/Apktool 解压您的 APK 文件并查看完整清单。 @RetiredNinja 我照你说的做了,生成的清单文件有这些代码行:感谢@RetiredNinja 解决问题!这是他写的(知道如何接受回复作为答案):
“您的纹理是否压缩为 ETC/ETC2?- 退休忍者”
“这可能是您的问题。您应该阅读此处的 Android 部分:https://docs.unity3d.com/Manual/class-TextureImporterOverride.html#notes-on-android 您可能希望将其设置为 ETC2 或不要覆盖。–退休忍者”
【讨论】:
【参考方案2】:在 gradle 中将您的最低 SDK 设置为较低版本
【讨论】:
在我的清单文件中,我的 minSdkVersion 设置为 19 (以上是关于如何让我的 google play 应用支持更多设备?的主要内容,如果未能解决你的问题,请参考以下文章