React Native构建APK时出现Failed to execute aapt错误的解决方法
Hey there! Let's tackle this frustrating APK build issue you're hitting. You've already tried some common fixes like disabling AAPT2 and scouring existing resources, so let's walk through targeted next steps to get your release build working.
First, Share the Exact Error Log (Critical!)
Before diving deeper, if you can paste the full error output from running ./gradlew assembleRelease --stacktrace, that'll make pinpointing the issue way easier. Gradle's error messages usually include specific clues (like missing resources, signing config issues, or dependency conflicts) that we can use to fix things fast.
Common Fixes to Try Right Now
1. Clean Build Cache & Rebuild
Corrupted build cache is a super common culprit. Run these commands to wipe old artifacts and start fresh:
./gradlew clean ./gradlew assembleRelease
2. Verify Your Release Signing Configuration
Release builds require a valid signing config—this is often overlooked even after following the docs. Double-check your app-level build.gradle has this set up correctly:
signingConfigs { release { storeFile file("../your-keystore-file.jks") // Adjust path to your keystore storePassword "your-store-password" keyAlias "your-key-alias" keyPassword "your-key-password" } } buildTypes { release { signingConfig signingConfigs.release // Make sure this points to your release config // Optional: Temporarily disable minification to rule out Proguard issues minifyEnabled false proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" } }
If you haven't generated a keystore yet, run this command first (replace placeholders):
keytool -genkey -v -keystore your-keystore-file.jks -keyalg RSA -keysize 2048 -validity 10000 -alias your-key-alias
3. Fix Resource Errors
Release builds are strict about resource validity. Check these:
- Drawable naming: No uppercase letters, spaces, or special characters (use snake_case only).
- Vector drawables: If you're using SVG/vector assets, add this to your app-level
build.gradleunderandroid.defaultConfig:vectorDrawables.useSupportLibrary = true - Missing resources: Ensure all referenced assets (like images, strings, or layouts) exist in the correct folders.
4. Resolve Dependency Conflicts
Version mismatches between React Native and third-party libraries often break release builds. Run this to see your full dependency tree:
./gradlew app:dependencies
Look for duplicate or conflicting versions (e.g., multiple versions of com.android.support libraries or kotlin-stdlib). You can force a consistent version using force in your dependencies block, like:
implementation("com.android.support:appcompat-v7:28.0.0") { force = true }
5. Disable AAPT2 Properly (If Needed)
You mentioned adding android.enableAapt2=false, but make sure this is in the project-level gradle.properties file (not the app-level one). If that still doesn't work, try updating your Android Gradle Plugin to a newer version—AAPT2 issues are often fixed in recent releases.
6. Check AndroidManifest.xml for Issues
Release builds validate the manifest strictly. Look for:
- Duplicate permission declarations
- Missing required components (like your main Activity's
intent-filter) - Invalid attribute values (e.g., incorrect
android:targetSdkVersion)
Once you've tried these steps, if you still hit an error, share the exact stack trace and we'll narrow it down further!
内容的提问来源于stack exchange,提问作者slipperypete

