簡體   English   中英

將React-Native的Android項目導入Android Studio

[英]Importing Android project of React-Native to Android Studio

我創建了一個簡單的React-Native項目,並嘗試將其導入Android Studio IDE。 問題是構建過程失敗並出現以下兩個錯誤:

在此處輸入圖片說明

為了解決第一個錯誤,我在項目級別的build.gradle文件中將appcompat版本更改為27.0.2,其中以前的本機android應用程序已在其中成功構建。 但是使用此API版本會拋出相同的錯誤。 在下面的build.gradle文件已附加,以查看是否有問題。

(build.gradle) --> project level    
    // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
    }
}


ext {
    buildToolsVersion = "27.0.2"
    minSdkVersion = 16
    compileSdkVersion = 27
    targetSdkVersion = 27
    supportLibVersion = "27.0.2"
}

這是模塊級別的build.gradle。

project.ext.react = [
    entryFile: "index.js"
]

apply from: "../../node_modules/react-native/react.gradle"

def enableSeparateBuildPerCPUArchitecture = false

def enableProguardInReleaseBuilds = false

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        applicationId "com.sampleproj"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 1
        versionName "1.0"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86"
        }
    }
    buildTypes {
        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]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }
        }
    }
}

dependencies {
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    compile "com.facebook.react:react-native:+"  // From node_modules
}

task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}

我該如何解決這些問題?

我找到了解決問題的步驟。

  1. 在項目級build.gradle中將以下代碼行添加到repositoreis部分:

     maven { url "$rootDir/../node_modules/react-native/android" } 
  2. 第一步使構建過程成功完成,但是在模擬器或物理設備上運行時會顯示紅色屏幕,其中指出: 無法從資產index.android.bundle加載腳本 要解決此問題,請按照說明進行操作

  3. 要完成第二步,您應該將本機版本從0.56降級到0.55.4(如果使用此版本),因為0.56版本中存在錯誤。 如何!
  4. 如果遇到babel-preset-react-native \\ index.js“提供的默認無效屬性...執行第二步后,只需更改項目的package.json中的以下行,然后使用以下命令進行同步:

npm安裝

(package.json)

"babel-preset-react-native": "^4.0.0"

並非所有人都需要執行所有步驟,但是當我遇到錯誤時,此過程可以幫助我解決它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM