uni-app x生成的安卓包,安装时,提示不兼容。解决方案

找到 manifest.json

进入:源码视图

代码

{
    "name" : "xxx康养",
    "appid" : "__xxx6",
    "description" : "xxx康养",
    "versionName" : "1.0.12",
    "versionCode" : 100012,
    "uni-app-x" : {},
    /* 快应用特有相关 */
    "quickapp" : {},
    /* 小程序特有相关 */
    "mp-weixin" : {
        "appid" : "",
        "setting" : {
            "urlCheck" : false
        },
        "usingComponents" : true
    },
    "mp-alipay" : {
        "usingComponents" : true
    },
    "mp-baidu" : {
        "usingComponents" : true
    },
    "mp-toutiao" : {
        "usingComponents" : true
    },
    "uniStatistics" : {
        "enable" : false
    },
    "vueVersion" : "3",
    "app" : {
        "distribute" : {
            "android" : {
                "packagename" : "xxxxxTVX",
                "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ],
                "minSdkVersion" : "21",
                "targetSdkVersion" : "32"
            },
            "icons" : {
                "android" : {
                    "hdpi" : "static/qxky_APP_Icon/72x72.png",
                    "xhdpi" : "static/qxky_APP_Icon/96x96.png",
                    "xxhdpi" : "static/qxky_APP_Icon/144x144.png",
                    "xxxhdpi" : "static/qxky_APP_Icon/192x192.png"
                }
            }
        }
    }
}

关键代码

 "android" : {
                "packagename" : "xxxxxTVX",
                "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ],
                "minSdkVersion" : "21",
                "targetSdkVersion" : "32"
            },

packagename:包名;最好是和你“发行”(打包)时的包名一致。

abiFilters:需要兼容CPU的类型

minSdkVersion:应用兼容的最低Android版本(API等级)

targetSdkVersion:应用适配的目标Android版本(API等级)

 

android配置

官方说明:manifest.json | uni-app官网

App-Android端发布配置

属性类型默认值描述
minSdkVersioninteger21应用兼容的最低Android版本(API等级);参考文档
targetSdkVersioninteger30应用适配的目标Android版本(API等级),部分应用市场要求设置较高的targetSdkVersion才能提交审核;参考文档
abiFiltersArray<'armeabi-v7a' | 'arm64-v8a' | 'x86' | 'x86_64'>["arm64-v8a"]参考文档

注意

  • abiFilters 用于指定应用需要支持的CPU类型,字符串数组类型,字符串可取值"armeabi-v7a"、"arm64-v8a"、"x86"、"x86_64",默认值为["arm64-v8a"]。
  • minSdkVersion 用于指定应用运行所需最低 API 级别的整数。如果系统的 API 级别低于该属性中指定的值,Android 系统将阻止用户安装应用。
  • targetSdkVersion 一个用于指定应用的目标 API 级别的整数。如果未设置,其默认值与为 minSdkVersion 指定的值相等。该值用于通知系统,您已针对目标版本进行了测试,并且系统不应通过启用任何兼容性行为,以保持您的应用与目标版本的向前兼容性。
  • minSdkVersion 和 targetSdkVersion 设置的值是 API 级别(API Level),完整API级别信息请参考Android API级别说明

    Android版本列表

    API等级与Android版本对应列表如下:

    API等级Android版本号Android版本名称
    19Android4.4Kitkat
    20Android4.4WKitkat Watch
    21Android5.0Lollipop
    22Android5.1Lollipop
    23Android6.0Marshmallow
    24Android7.0Nougat
    25Android7.1Nougat
    26Android8.0Oreo
    27Android8.1Oreo
    28Android9.0Pie
    29Android10.0Android Q
    30Android11.0Android R
    31Android12.0Android S

     

    IOS配置

    属性类型默认值描述
    appidstring-iOS Bundle ID

    示例

    {
        "name" : "uni-app x",
        "appid" : "__UNI__XXXXXXX",
        "description" : "描述信息",
        "versionName" : "1.0.0",
        "versionCode" : "100",
        "uni-app-x":{
          "flex-direction": "column"
        },
        "vueVersion" : "3",
    	"app": {
    		"distribute": {
    			"syncDebug": true,
    			"android": {
    				"packagename": "Android包名",
    				"abiFilters": [
    					"armeabi-v7a","arm64-v8a"
    				],
    				"minSdkVersion": "21",
    				"targetSdkVersion": "32"
    			},
    			"ios": {
    				"appid": "iOS Bundle ID"
    			}
    		}
    	}
    }

    CPU类型

    HBulderX已适配支持以下主流CPU类型:

    • armeabi-v7a 第7代及以上的ARM处理器(ARM32位),市面上大多数手机使用此CPU类型。
    • arm64-v8a 第8代、64位ARM处理器(ARM64位),最近两年新发的设备使用此CPU类型,可以兼容使用armeabi-v7a的so库。
    • x86 少部分平板使用x86,AS模拟器中选了intel x86时使用x86处理器,以及其它常用三方模拟器通常使用x86

      注意:不勾选x86在模拟器上可能无法正常运行,以下是常见模拟器是否需要包含x86的情况

      • 雷电模拟器: 3.x必须包含x86,否则无法正常运行;4.x无需包含x86。
      • 夜神模拟器: 必须包含x86,否则无法正常运行
      • MuMu模拟器: 无需包含x86
      • 逍遥模拟器: 无需包含x86
      • BlueStacks(蓝叠模拟器): 无需包含x86
      • 腾讯模拟器(手游助手): 必须包含x86,否则无法正常运行
      • 其它模拟器: 未测试验证,建议包含x86,确保在模拟器正常运行