zoukankan      html  css  js  c++  java
  • 关于最新版本的flutter在安卓打包的问题解决方法

    1.集成友盟push提示androidx版本号不一致,需在gradle文件中手动选择即可,如下

     1 buildscript {
     2     repositories {
     3         google()
     4         jcenter()
     5         maven { url 'https://dl.bintray.com/umsdk/release' }
     6     }
     7 
     8     dependencies {
     9         classpath 'com.android.tools.build:gradle:3.2.1'
    10     }
    11 
    12     subprojects {
    13         //根据提示使用对应的版本
    14         project.configurations.all {
    15             resolutionStrategy.eachDependency { details ->
    16                 if (details.requested.group == 'com.android.support'
    17                         && !details.requested.name.contains('multidex') ) {
    18                     details.useVersion "27.1.1"
    19                 }
    20 
    21                 if (details.requested.group == 'androidx.core'
    22                         && !details.requested.name.contains('androidx') ) {
    23                     details.useVersion "1.0.0"
    24                 }
    25                 if (details.requested.group == 'androidx.coordinatorlayout'
    26                         && !details.requested.name.contains('androidx') ) {
    27                     details.useVersion "1.0.0"
    28                 }
    29                 if (details.requested.group == 'androidx.documentfile'
    30                         && !details.requested.name.contains('androidx') ) {
    31                     details.useVersion "1.0.0"
    32                 }
    33                 if (details.requested.group == 'androidx.print'
    34                         && !details.requested.name.contains('androidx') ) {
    35                     details.useVersion "1.0.0"
    36                 }
    37                 if (details.requested.group=='androidx.arch.core' ) {
    38                     details.useVersion "2.0.0"
    39                 }
    40                 if (details.requested.group=='androidx.drawerlayout' ) {
    41                     details.useVersion "1.0.0"
    42                 }
    43                 if (details.requested.group=='androidx.fragment' ) {
    44                     details.useVersion "1.0.0"
    45                 }
    46             }
    47         }
    48     }
    49 
    50 }
    51 
    52 allprojects {
    53     repositories {
    54         google()
    55         jcenter()
    56         maven { url 'https://dl.bintray.com/umsdk/release' }
    57     }
    58 }
    59 
    60 rootProject.buildDir = '../build'
    61 subprojects {
    62     project.buildDir = "${rootProject.buildDir}/${project.name}"
    63 }
    64 subprojects {
    65     project.evaluationDependsOn(':app')
    66 }
    67 
    68 task clean(type: Delete) {
    69     delete rootProject.buildDir
    70 }

    2.打包的时候找不到libflutter.so文件

    这是对应平台的so文件不存在造成的,方法是只选择一种平台,一般手机对支持armv7架构,所以在app的build.gradle下设置ndk过滤就好

    1  ndk {
    2             //选择要添加的对应cpu类型的.so库。
    3              abiFilters 'armeabi-v7a'
    4 //            abiFilters 'arm64-v8a'
    5             // 还可以添加 'x86', 'x86_64', 'mips', 'mips64', 'armeabi', 'armeabi-v7a', 'arm64-v8a'
    6         }

    但是有个问题,最新的flutter默认只打64位的包,armv7的也会找不到那个so,这个时候就需要改flutter的编译环境了

    在以下目录找到flutter.gradle

    /flutter/packages/flutter_tools/gradle/flutter.gradle

    然后找到465行的 getTargetPlatforms方法,修改为如下即可

        //whh 获取目标平台
        private List<String> getTargetPlatforms() {//whh 无论如何配置,都只返回arm32和64位的so
            // if (!project.hasProperty('target-platform')) {
                return DEFAULT_PLATFORMS
            // }
            // return project.property('target-platform').split(',').collect {
            //     if (!PLATFORM_ARCH_MAP[it]) {
            //         throw new GradleException("Invalid platform: $it.")
            //     }
            //     return it
            // }
        }

    当然你可以按照代码的逻辑把target-platform放到一个配置文件里,只不过我没时间去找这个配置文件是在哪里写的,如果有兴趣,欢迎补充

  • 相关阅读:
    windows10使用arcgis注意事项
    andriod arcgis加载影像TIF
    FeatureTable()
    arcgis Listview
    ArcGIS for Android图层记录数,图层选择记录,图层字段数
    ArcGIS for Android 点击选择
    ArcGIS for Android地图上实际距离与对应的屏幕像素值计算
    Android如何检查对象的类型
    北美内地电影票房总排行榜
    XSS漏洞的渗透利用另类玩法
  • 原文地址:https://www.cnblogs.com/dongweiq/p/11660497.html
Copyright © 2011-2022 走看看