我创建了一个带有react-native的新项目,包含很少的包(react-native-camera,react-native-device-info,react-native-elements,react-native-geocoder,react-native-qrcode-scanner,react-本机矢量图标,反应导航)但我无法弄清楚它为什么不构建 . 我执行此命令来生成APK:
gradlew clean
gradlew assembleRelease
输出是:
- 出了什么问题:任务':react-native-device-info:verifyReleaseResources'的执行失败 .
com.android.ide.common.process.ProcessException:无法执行aapt
如果我删除react-native-device-info软件包,则会出现下一个安装的包为react-native-camera的错误 .
如果我在grade.properties中设置android.enableAapt2 = true(在aapt2禁用的情况下引发错误),我收到此错误:
D:\WorkingCopy\Apps\CpVehicle\src\android\app\build\intermediates\res\merged\release\drawable-hdpi\node_modules_reactnavigation_src_views_assets_backicon.png: error: uncompiled PNG file passed as argument. Must be compiled first into .flat file..
error: failed parsing overlays.
我的build.gradle文件是这样的:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
maven { url "$rootDir/../node_modules/react-native/android" }
maven { url "https://jitpack.io" }
maven { url 'https://maven.google.com' }
mavenCentral()
google()
}
}
subprojects {
project.configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.android.support'
&& !details.requested.name.contains('multidex') ) {
details.useVersion '27.1.1'
}
}
}
}
gradle-wrapper.properties:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
当项目处于开始阶段时,我构建了APK而没有错误 .
如果我尝试使用Android Studio构建它,它可以正常工作,但是在它出现之前崩溃的设备上打开应用程序 . 在Play商店控制台中,我收到此错误:
FATAL EXCEPTION: Thread-3
Process: com.cpvehicle, PID: 8053
java.lang.RuntimeException: Unable to load script from assets 'index.android.bundle'. Make sure your bundle is packaged correctly or you're running a packager server.
at com.facebook.react.bridge.CatalystInstanceImpl.jniLoadScriptFromAssets(Native Method)
谢谢 .
1 回答
我发现了这个解决方案或更好的解决方法:
android.enableAapt2 = FALSE
在build.gradle子项目中
afterEvaluate {project - > if(project.hasProperty(“android”)){android {compileSdkVersion 26}}}