Cách thay đổi Android minSdkVersion trong dự án Flaming


84

Tôi đang cố gắng bắt đầu một dự án rung cho một Ứng dụng sử dụng bluetooth để giao tiếp. Vì vậy, tôi đã sử dụng màu xanh lam .

Thật không may, khi cố gắng chạy (trên thiết bị Android), ví dụ đầu tiên tôi tạo, tôi đã gặp lỗi sau:

FAILURE: Build failed with an exception.

  * What went wrong:
  Execution failed for task ':app:processDebugManifest'.
  > Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library [:flutter_blue] /home/maldus/Projects/flutter/polmac/build/flutter_blue/intermediates/manifests/full/debug/AndroidManifest.xml as the library might be using APIs not available in 16
    Suggestion: use a compatible library with a minSdk of at most 16,
            or increase this project's minSdk version to at least 19,
            or use tools:overrideLibrary="com.pauldemarco.flutterblue" to force usage (may lead to runtime failures)

Nếu tôi đang sử dụng Android Studio, tôi sẽ biết cách khởi động Android minSdkVersion, nhưng trong một dự án chập chờn (sử dụng VSCode), tôi hơi bị lạc.

Có thể tăng minSdkVersion bằng rung không, và làm thế nào?

Câu trả lời:


203

Thực sự là có thể tăng minSdkVersion, nhưng tôi đã mất quá nhiều thời gian để tìm ra nó bởi vì các tìm kiếm trên google chủ yếu mang lại kết quả là các cuộc thảo luận về phiên bản Sdk tối thiểu tuyệt đối có thể hỗ trợ, chứ không phải cách tăng nó trong dự án của riêng bạn .

Giống như trong một dự án Android Studio, bạn phải chỉnh sửa build.gradletệp. Trong một dự án rung chuyển, nó được tìm thấy ở đường dẫn ./android/app/build.gradle.

Tất nhiên, tham số cần được thay đổi là minSdkVersion 16tăng nó lên với những gì bạn cần (trong trường hợp này là 19).

defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId "com.example.projectname"
    minSdkVersion 19 //*** This is the part that needs to be changed, previously was 16
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

Bây giờ có vẻ rõ ràng, nhưng tôi đã mất đủ thời gian để tự mình tìm ra nó.


8
Đường dẫn tệp rất hữu ích! Tôi đang xem tệp build.gradle bên dưới android/và không thể tìm ra cách để cập nhật minSdkVersion này.
Adam

Điều gì xảy ra nếu tôi không muốn thay đổi minSdkVersion vì tôi muốn nhắm mục tiêu các phiên bản SDK thấp hơn? @Maldus
pblead26

Sau đó không thay đổi nó? Tôi không chắc mình hiểu câu hỏi, tôi gặp phải vấn đề này vì flblue không hoạt động nếu không thay đổi minSDKVersion. Nếu bạn muốn sử dụng Flagship với phiên bản SDK thấp hơn, tôi e rằng đó là vấn đề của thư viện Flagship.
Maldus

8

Bạn có thể thay đổi minSdkVersiontrong các tập tin Project_Name/android/app/build.gradle, defaultconfig:

defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId "com.example.projectname"
    minSdkVersion 16 // <--- There
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

1

Làm theo các bước sau để thay đổi minSdkVersionvấn đề.

Đầu tiên => YouProject_name/android/app/build.gradle

Second => defaultconfig {// bạn có thể tìm thấy nó bên trong build.gradle}

defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.umair.product_details_using_crud"
        minSdkVersion 16 // here you can change minSdkVersison
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

0

Nếu ứng dụng của bạn yêu cầu phiên bản tối thiểu cụ thể của nền tảng Android, bạn có thể chỉ định yêu cầu phiên bản đó làm cài đặt cấp API trong build.gradletệp của ứng dụng . Trong quá trình xây dựng, các cài đặt này được hợp nhất vào tệp kê khai của ứng dụng của bạn. Việc chỉ định các yêu cầu cấp API đảm bảo rằng ứng dụng của bạn chỉ có thể được cài đặt trên các thiết bị đang chạy phiên bản tương thích của nền tảng Android.

Bạn phải đặt minSdkVersiontrong build.gradletệp, định vị  <app dir>/android/app và đặt giá trị trong  defaultConfigkhối:

Có sẵn hai cài đặt cấp API:

  • minSdkVersion - Phiên bản tối thiểu của nền tảng Android mà ứng dụng sẽ chạy, được chỉ định bởi mã định danh cấp API của nền tảng.
  • targetSdkVersion - Chỉ định cấp API mà ứng dụng được thiết kế để chạy. Trong một số trường hợp, điều này cho phép ứng dụng sử dụng các yếu tố kê khai hoặc hành vi được xác định trong cấp API mục tiêu, thay vì bị hạn chế chỉ sử dụng những yếu tố được xác định cho cấp API tối thiểu.

Để chỉ định các yêu cầu cấp API mặc định trong một  build.gradle tệp, hãy thêm một hoặc nhiều cài đặt ở trên vào  defaultConfig {} khối, được lồng bên trong  android {} khối. Bạn cũng có thể ghi đè các giá trị mặc định này cho các phiên bản khác nhau của ứng dụng bằng cách thêm cài đặt để tạo loại hoặc hương vị sản phẩm. Tệp sau  build.gradle chỉ định mặc định  minSdkVersion và  targetSdkVersion cài đặt trong  defaultConfig {} khối và ghi đè  minSdkVersion cho một hương vị sản phẩm.

android {
   compileSdkVersion 29

  ...
  defaultConfig {
    applicationId "com.app.yourapp”
    minSdkVersion 16
    targetSdkVersion 29
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
  }
  productFlavors {
    main {
      ...
    }
    afterLollipop {
      ...
      minSdkVersion 21
    }
  }
}

Để biết thêm thông tin, hãy xem tài liệu phần tử tệp kê khai use-sdk-element và tài liệu Cấp độ API .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.