解决 couldn’t find DSO to load: libhermes.so 问题

转自 https://stackoverflow.com/questions/59604146/react-native-compile-bundle-with-android-studio

  apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android {    compileSdkVersion 28    buildToolsVersion "28.0.3"    defaultConfig {        applicationId ""        minSdkVersion 21        targetSdkVersion 28        versionCode 1        versionName "1.0"        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'        }    }} project.ext.react = [         enableHermes: false,] def jscFlavor = 'org.webkit:android-jsc:+'def enableHermes = project.ext.react.get("enableHermes", false); dependencies {    implementation fileTree(dir: 'libs', include: ['*.jar'])    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"    implementation 'com.android.support:appcompat-v7:28.0.0'    implementation 'com.android.support.constraint:constraint-layout:1.1.3'    testImplementation 'junit:junit:4.12'    androidTestImplementation 'com.android.support.test:runner:1.0.2'    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'    implementation "com.facebook.react:react-native:+"    implementation 'com.android.support:support-annotations:27.1.1'     if (enableHermes) {        implementation project(':hermes-engine')        debugImplementation files(hermesPath + "hermes-debug.aar")        releaseImplementation files(hermesPath + "hermes-release.aar")    } else {        implementation jscFlavor    }}

The second: You need to change the principal’s gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript {    ext.kotlin_version = '1.3.50'    repositories {        google()        jcenter()        mavenLocal()     }    dependencies {        classpath 'com.android.tools.build:gradle:3.4.2'        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"        // NOTE: Do not place your application dependencies here; they belong        // in the individual module build.gradle files    }} allprojects {    repositories {        google()        jcenter()        mavenLocal()        maven {            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm            url "$rootDir/../node_modules/react-native/android"        }        maven {            // Android JSC is installed from npm            url("$rootDir/../node_modules/jsc-android/dist")        }    }} task clean(type: Delete) {    delete rootProject.buildDir}

The third: You need to add the next at setting gradle

include ':app'rootProject.name='Notes'  include ':hermes-engine'project(':hermes-engine').projectDir = new File(rootProject.projectDir, '../node_modules/hermes-engine/android/')

发表评论

邮箱地址不会被公开。 必填项已用*标注