我正在嘗試在我的 react-native (0.68) android 應用程式上構建發布包。
在開發程序中所有構建都已成功,但無法構建發布版本。
我按照React-Native 0.68 documentation for signed apk android
運行所有步驟,但在最后一個步驟中./gradlew bundleRelease失敗并出現以下錯誤 `Deprecated Gradle features were used in this build,使其與 Gradle 8.0 不兼容。
您可以使用“--warning-mode all”來顯示各個棄用警告并確定它們是否來自您自己的腳本或插件。`
然后我跑了,./gradlew --warning-mode all我得到了關于每個不兼容的更多資訊,但我不明白如何修復它們。輸出:
此構建中使用了已棄用的 Gradle 功能,使其與 Gradle 8.0 不兼容。您可以使用“--warning-mode all”來顯示各個棄用警告并確定它們是否來自您自己的腳本或插件。請參閱https://docs.gradle.org/7.3.3/userguide/command_line_interface.html#sec:command_line_warnings 在此構建期間已禁用 11 個無效作業單元的執行優化以確保正確性。有關更多詳細資訊,請參閱棄用警告。在 6m 16s 內構建失敗 205 個可操作任務:200 個已執行,5 個最新 PS C:\Users\nunoh\Documents\GitHub\hoopersApp\HoopersClubApp\android> gradle --warning-mode all FAILURE: Build failed with an exception .
- 出了什么問題:無法從 '11.0.15' 確定 java 版本。
- 嘗試:使用 --stacktrace 選項運行以獲取堆疊跟蹤。使用 --info 或 --debug 選項運行以獲得更多日志輸出。PS C:\Users\nunoh\Documents\GitHub\hoopersApp\HoopersClubApp\android> ./gradlew --warning-mode all
配置專案:react-native-community_slider 子專案 ':react-native-community_slider' 的位置為 'C:\Users\nunoh\Documents\GitHub\hoopersApp\HoopersClubApp\node_modules@react-native-community\slider\android'專案根目錄。此行為已被棄用,并計劃在 Gradle 8.0 中洗掉。有關更多資訊,請參閱升級指南:https ://docs.gradle.org/7.3.3/userguide/upgrading_version_7.html#deprecated_flat_project_structure 配置專案:react-native-linear-gradient 子專案 ':react-native-linear-gradient' 的位置為 'C:\Users\nunoh\Documents\GitHub\hoopersApp\HoopersClubApp\node_modules\react-native-linear-gradient\android ' 位于專案根目錄之外。此行為已被棄用,并計劃在 Gradle 8.0 中洗掉。有關更多資訊,請參閱升級指南:“鏈接到 gradle 7.3.3 升級版本 7”> 配置專案:react-native-maps 子專案 ':react-native-maps' 的位置為 'C:\Users\nunoh\Documents\GitHub \hoopersApp\HoopersClubApp\node_modules\react-native-maps\android' 位于專案根目錄之外。此行為已被棄用,并計劃在 Gradle 8.0 中洗掉。有關更多資訊,請參閱升級指南:“鏈接到 gradle 7.3. \Users\nunoh\Documents\GitHub\hoopersApp\HoopersClubApp\node_modules\react-native-mmkv\android\build.gradle:26)(使用 --stacktrace 運行以獲取此棄用警告的完整堆疊跟蹤。)MMKV:node_modules / 位于:C:\Users\nunoh\Documents\GitHub\hoopersApp\HoopersClubApp\node_modules 警告:DSL 元素“dexOptions”已過時,應洗掉。它將在 Android Gradle 插件的 8.0 版中洗掉。使用它沒有任何效果,AndroidGradle 插件會自動優化 dexing。配置專案:react-native-safe-area-context 子專案 ':react-native-safe-area-context' 的位置為 'C:\Users\nunoh\Documents\GitHub\hoopersApp\HoopersClubApp\node_modules\react-native-safe -area-context\android' 位于專案根目錄之外。此行為已被棄用,并計劃在 Gradle 8.0 中洗掉。有關更多資訊,請參閱升級指南:“Link to gradle 7.3.3 uprgrading version 7” 配置專案:react-native-screens 子專案 ':react-native-screens' 的位置為 'C:\Users\nunoh\Documents\GitHub\ hoopersApp\HoopersClubApp\node_modules\react-native-screens\android' 位于專案根目錄之外。此行為已被棄用,并計劃在 Gradle 8.0 中洗掉。有關更多資訊,請參閱升級指南:“Link to gradle 7.3.3 uprgrading version 7” 配置專案:react-native-svg 子專案 ':react-native-svg' 的位置為 'C:\Users\nunoh\Documents\GitHub\ hoopersApp\HoopersClubApp\node_modules\react-native-svg\android' 位于專案根目錄之外。此行為已被棄用,并計劃在 Gradle 8.0 中洗掉。有關詳細資訊,請參閱升級指南:“鏈接到 gradle 7.3.3 升級版本 7” 配置專案:react-native-vector-icons 子專案 ':react-native-vector-icons' 的位置為 'C:\Users\nunoh\ Documents\GitHub\hoopersApp\HoopersClubApp\node_modules\react-native-vector-icons\android' 位于專案根目錄之外。此行為已被棄用,并計劃在 Gradle 8.0 中洗掉。有關詳細資訊,請參閱升級指南:“鏈接到 gradle 7.3.3 升級版本 7” 任務:help 歡迎使用 Gradle 7.3.3。要運行構建,請運行 gradlew ...要查看可用任務串列,請運行 gradlew tasks 要查看有關任務的更多詳細資訊,請運行 gradlew help --task 要查看命令列選項串列,https://help.gradle.org 在 1m 8s 內構建成功 7 個可操作的任務:1 個已執行,6 個是最新的
我在 Project/android/app 中的 build.gradle:
apply plugin: "com.android.application"
import com.android.build.OutputFile
import org.apache.tools.ant.taskdefs.condition.Os
project.ext.react = [enableHermes: false,]
apply from: "../../node_modules/react-native/react.gradle"
def enableSeparateBuildPerCPUArchitecture = false
def enableProguardInReleaseBuilds = false
def jscFlavor = 'org.webkit:android-jsc: '
def enableHermes = project.ext.react.get("enableHermes", false);
def reactNativeArchitectures() {
def value = project.getProperties().get("reactNativeArchitectures")
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
}
android {
ndkVersion rootProject.ext.ndkVersion
compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig {
applicationId "com.hoopersclubapp"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED",
isNewArchitectureEnabled().toString()
if (isNewArchitectureEnabled()) {
externalNativeBuild {
ndkBuild {
arguments "APP_PLATFORM=android-21",
"APP_STL=c _shared",
"NDK_TOOLCHAIN_VERSION=clang",
"GENERATED_SRC_DIR=$buildDir/generated/source",
"PROJECT_BUILD_DIR=$buildDir",
"REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid",
"REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build"
cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1"
cppFlags "-std=c 17"
targets "hoopersclubapp_appmodules"
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
arguments "NDK_APP_SHORT_COMMANDS=true"
}
}
}
if (!enableSeparateBuildPerCPUArchitecture) {
ndk {
abiFilters (*reactNativeArchitectures())
}
}
}
}
if (isNewArchitectureEnabled()) {
externalNativeBuild {
ndkBuild {
path "$projectDir/src/main/jni/Android.mk"
}
}
def reactAndroidProjectDir = project(':ReactAndroid').projectDir
def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) {
dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck")
from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
into("$buildDir/react-ndk/exported")
}
def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy){
dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck")
from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
into("$buildDir/react-ndk/exported")
}
afterEvaluate {
preDebugBuild.dependsOn(packageReactNdkDebugLibs)
preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)
configureNdkBuildRelease.dependsOn(preReleaseBuild)
configureNdkBuildDebug.dependsOn(preDebugBuild)
reactNativeArchitectures().each {
architecture -> tasks.findByName("configureNdkBuildDebug[${architecture}]")?.configure {
dependsOn("preDebugBuild")
}
tasks.findByName("configureNdkBuildRelease[${architecture}]")?.configure {
dependsOn("preReleaseBuild")
}
}
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false
include (*reactNativeArchitectures())
}
}
signingConfigs {
debug {
storeFile file('debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
release {
if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
storeFile file(MYAPP_UPLOAD_STORE_FILE)
storePassword MYAPP_UPLOAD_STORE_PASSWORD
keyAlias MYAPP_UPLOAD_KEY_ALIAS
keyPassword MYAPP_UPLOAD_KEY_PASSWORD
}
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
signingConfig signingConfigs.release
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
applicationVariants.all {
variant -> variant.outputs.each {
output -> def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) {
output.versionCodeOverride=defaultConfig.versionCode*1000 versionCodes.get(abi)
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.facebook.react:react-native: "
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
exclude group:'com.facebook.fbjni'
}
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}"){
exclude group:'com.facebook.flipper'
exclude group:'com.squareup.okhttp3', module:'okhttp'
}
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
}
if (enableHermes) {
def hermesPath = "../../node_modules/hermes-engine/android/";
debugImplementation files(hermesPath "hermes-debug.aar")
releaseImplementation files(hermesPath "hermes-release.aar")
} else {
implementation jscFlavor
}
}
if (isNewArchitectureEnabled()) {
configurations.all {
resolutionStrategy.dependencySubstitution {
substitute(module("com.facebook.react:react-native")).using(project(":ReactAndroid")).because("On New Architecture we're building React Native from source")
}
}
}
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.implementation
into 'libs'
}
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
def isNewArchitectureEnabled() {
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
}
(我不得不從輸出中洗掉一些鏈接,因為我沒有足夠的聲譽來添加它們。另外,它總是相同的鏈接)
我正在運行 React-native 0.68。搖籃 7.3.3。在 Windows 11 家庭版 v.10.0.22 上
希望有人可以幫助或指導后續步驟來解決它并能夠構建我的發布 APK。
uj5u.com熱心網友回復:
發現更新到 gradle 7.4 可以正常作業。 Github問題在這里
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/521319.html
標籤:安卓反应式毕业典礼
上一篇:我在我的Android應用中使用什么版本的Gradle插件?
下一篇:無法決議androidx.appcompat:appcompat:1.5.1-AndroidStudio中的Gradle出錯
