在vlc android sdk上使用Gradle flavors

在vlc android sdk上使用Gradle flavors,android,android-gradle-plugin,vlc-android,Android,Android Gradle Plugin,Vlc Android,在我的应用程序中,我使用的是“de.mrmaffen:vlc android sdk:2.0.6”库,它占用了很多存储空间,但我找不到更小的替代品。 所以我决定使用split或产品口味,但我无法让它发挥作用。 我试着跟着医生走,但运气不好。 感谢您的帮助。自己构建LibVLC安卓SDK 如果您使用的是de.mrmaffen:vlc android sdk:2.0.6“ 如前所述,之后只需运行这个Gradle命令:/gradlew buildLibVlc 构建特定版本的LibVLC安卓SDK 确

在我的应用程序中,我使用的是
“de.mrmaffen:vlc android sdk:2.0.6”
库,它占用了很多存储空间,但我找不到更小的替代品。
所以我决定使用split或产品口味,但我无法让它发挥作用。
我试着跟着医生走,但运气不好。
感谢您的帮助。

自己构建LibVLC安卓SDK 如果您使用的是de.mrmaffen:vlc android sdk:2.0.6“

如前所述,之后只需运行这个Gradle命令:
/gradlew buildLibVlc


构建特定版本的LibVLC安卓SDK 确保遵循Android编译说明中的依赖项,并检查:

  • git克隆
    repo
  • 在此repo中打开命令提示符。“cd”或将目录更改为 它
  • git克隆。
  • 将目录更改为vlc android目录
  • git标签
  • git签出
    。在本例中,为2.1.2
  • cd..
  • 注释掉
    build.gradle
    脚本的
    compile/build
    你不需要
  • /gradlew buildLibVlc
  • 您应该有一个成功的Java源代码和
    jniLibs
    文件夹中的共享对象(*.so)文件
  • 如果需要,请在
    jniLibs
    文件夹旁边创建一个
    libs
    文件夹 更新了gradle版本

  • 通过Maven CentralJCenter获取 只要将此依赖项添加到您的项目中,您就可以开始了

    我正在使用这个版本。记住将JCenter添加到项目的
    build.gradle
    文件中:

    allprojects {
        repositories {
            jcenter()
        }
    }
    
    VLC Android SDK通过JCenter支持下一个ABI:armeabi-v7a、arm64-v8a、x86和x86_64

    您可以在应用程序的
    build.gradle
    文件中筛选特定的ABI(不包括x86_64和arm64-v8a):

    可以通过最新的Android Studio版本检查包含的文件:


    为ABI配置多个APK 在内部添加一个abi块 你的街区。在abi块中,提供一个abi


    构建多个APK 单击Build>Build APK为当前选定的对象生成所有APK 项目窗格中的模块

    Gradle为每个ABI创建APK 进入项目的
    build/outputs/apk/
    目录


    配置构建变体 上的版本,向您展示如何配置版本变体以创建应用程序的不同版本


    组合abi过滤器和构建变体


    通过ABI和密度分割的多APK

    的 可用于设置ABI拆分版本代码的代码段

    为x86_64和x86提供比ARM更高的版本号,尽可能多的x86 设备可以通过仿真层运行ARM代码,尽管 性能较低

    如果你不想管理太多的APK,就瞄准最流行的APK 一个(通常是ARM,可能是x86)带有拆分APK并提供 通用APK对其他所有人都适用

    在Play Store上以较低的价格发布universal APK是至关重要的 比所有其他ABI特定软件包的版本号

    如果您需要更灵活的多APK设置,请查看


    推荐选择支持的ABI的中级帖子 我们将了解什么是ABI,ABI拆分的问题,以及 避免这些问题的替代方法。。。例如,Android支持以下ABI:

    mips, mips64, X86, X86–64, arm64-v8a, armeabi, armeabi-v7a
    

    因此,您必须在支持基于 大小与性能标准,但mips、mips-64和armeabi应为 毫不犹豫地撤走了


    解决某些设备上不满意的链接错误问题 ,64位处理器生成并检查arm64文件夹以加载本机库

    如果您的项目没有arm64文件夹。以下是解决方案:

    build.gradle

    defaultConfig {
        ...
    
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    
    }
    
    您需要将此筛选器(abiFilters)添加到应用程序模块的 build.gradle文件。因此,当您的设备尝试运行您的应用程序时,它将 检查gradle文件,了解它不应生成任何 文件夹并使用现有的本机库资源。繁荣几乎解决了。 但还有一件事。将此行添加到gradle.properties以使用不推荐的Ndk

    gradle.properties

    android.useDeprecatedNdk=true
    

    您可以使用应用程序包,这样就不需要处理多个APK。Google Play将自动为您处理。此外,这种方法还可以提供额外的好处。有关更多详细信息:

    这是一个非常简单的问题。你试过什么?你说你不能让它工作是什么意思?正如我在问题中提到的“我试图在没有运气的情况下跟踪文档”。你跟踪文档的例子在哪里?在什么方面它对你不起作用?您没有提供足够的信息以供他人帮助您。如果你不添加这些细节,你就不太可能找到你想要的答案。
    android {
      ...
      splits {
    
        // Configures multiple APKs based on ABI.
        abi {
    
          // Enables building multiple APKs per ABI.
          enable true
    
          // By default all ABIs are included, so use reset() and include to specify that we only
          // want APKs for x86 and armeabi-v7a.
    
          // Resets the list of ABIs that Gradle should create APKs for to none.
          reset()
    
          // Specifies a list of ABIs that Gradle should create APKs for.
          include "x86", "armeabi-v7a"
    
          // Specifies that we do not want to also generate a universal APK that includes all ABIs.
          universalApk false
        }
      }
    }
    
    android {
        productFlavors {
            x86 {
                ndk {
                    abiFilter "x86"
                }
            }
            arm {
                ndk {
                    abiFilters "armeabi-v7a", "armeabi"
                }
            }
        }
    }
    
    mips, mips64, X86, X86–64, arm64-v8a, armeabi, armeabi-v7a
    
    defaultConfig {
        ...
    
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    
    }
    
    android.useDeprecatedNdk=true