当前位置: 首页 > 知识库问答 >
问题:

java.io.IOException:无法写入react-native run-android失败

权韬
2023-03-14

失败:构建失败,出现异常。

>

  • 出了什么问题:任务“:app:transformClassesAndResourcesWithProguardForDebug”的执行失败。

    java.io.IOException: 无法写入 [/home/user/Desktop/pratap/react-projects/test/android/app/build/intermediates/transforms/proguard/debug/0.jar] (无法读取 [/root/.gradle/caches/transforms-2/files-2.1/25cd9e2eed8b822cb2ad78849b3b28bf/jars/classes.jar(;;;;;**.class)] (重复的jar条目 [android/support/v4/app/INotificationSideChannel$Stub$Proxy.class]))

    我正在运行< code > react-native run-Android 命令来运行应用程序,并出现上述错误,我不知道< code>java.io.IOException发生了什么

    我尝试过:

      < li >删除android

    梯度-

        apply plugin: "com.android.application"
    apply plugin: 'io.fabric'
    import com.android.build.OutputFile
    
    /**
     * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
     * and bundleReleaseJsAndAssets).
     * These basically call `react-native bundle` with the correct arguments during the Android build
     * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
     * bundle directly from the development server. Below you can see all the possible configurations
     * and their defaults. If you decide to add a configuration block, make sure to add it before the
     * `apply from: "../../node_modules/react-native/react.gradle"` line.
     *
     * project.ext.react = [
     *   // the name of the generated asset file containing your JS bundle
     *   bundleAssetName: "index.android.bundle",
     *
     *   // the entry file for bundle generation
     *   entryFile: "index.android.js",
     *
     *   // whether to bundle JS and assets in debug mode
     *   bundleInDebug: false,
     *
     *   // whether to bundle JS and assets in release mode
     *   bundleInRelease: true,
     *
     *   // whether to bundle JS and assets in another build variant (if configured).
     *   // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
     *   // The configuration property can be in the following formats
     *   //         'bundleIn${productFlavor}${buildType}'
     *   //         'bundleIn${buildType}'
     *   // bundleInFreeDebug: true,
     *   // bundleInPaidRelease: true,
     *   // bundleInBeta: true,
     *
     *   // whether to disable dev mode in custom build variants (by default only disabled in release)
     *   // for example: to disable dev mode in the staging build type (if configured)
     *   devDisabledInStaging: true,
     *   // The configuration property can be in the following formats
     *   //         'devDisabledIn${productFlavor}${buildType}'
     *   //         'devDisabledIn${buildType}'
     *
     *   // the root of your project, i.e. where "package.json" lives
     *   root: "../../",
     *
     *   // where to put the JS bundle asset in debug mode
     *   jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
     *
     *   // where to put the JS bundle asset in release mode
     *   jsBundleDirRelease: "$buildDir/intermediates/assets/release",
     *
     *   // where to put drawable resources / React Native assets, e.g. the ones you use via
     *   // require('./image.png')), in debug mode
     *   resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
     *
     *   // where to put drawable resources / React Native assets, e.g. the ones you use via
     *   // require('./image.png')), in release mode
     *   resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
     *
     *   // by default the gradle tasks are skipped if none of the JS files or assets change; this means
     *   // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
     *   // date; if you have any other folders that you want to ignore for performance reasons (gradle
     *   // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
     *   // for example, you might want to remove it from here.
     *   inputExcludes: ["android/**", "ios/**"],
     *
     *   // override which node gets called and with what additional arguments
     *   nodeExecutableAndArgs: ["node"],
     *
     *   // supply additional arguments to the packager
     *   extraPackagerArgs: []
     * ]
     */
    
    project.ext.react = [
        entryFile: "index.js"
    ]
    
    apply from: "../../node_modules/react-native/react.gradle"
    
    /**
     * Set this to true to create two separate APKs instead of one:
     *   - An APK that only works on ARM devices
     *   - An APK that only works on x86 devices
     * The advantage is the size of the APK is reduced by about 4MB.
     * Upload all the APKs to the Play Store and people will download
     * the correct one based on the CPU architecture of their device.
     */
    def enableSeparateBuildPerCPUArchitecture = false
    
    /**
     * Run Proguard to shrink the Java bytecode in release builds.
     */
    def enableProguardInReleaseBuilds = true
    
    android {
        purgeBackgroundGeolocationDebugResources(applicationVariants)
        compileSdkVersion rootProject.ext.compileSdkVersion
         compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
        packagingOptions {
            exclude 'META-INF/androidx.localbroadcastmanager_localbroadcastmanager.version'
            exclude 'META-INF/androidx.appcompat_appcompat.version'
            exclude 'META-INF/androidx.swiperefreshlayout_swiperefreshlayout.version'
            exclude 'META-INF/androidx.cursoradapter_cursoradapter.version'
            exclude 'META-INF/androidx.drawerlayout_drawerlayout.version'
            exclude 'META-INF/androidx.print_print.version'
            exclude 'META-INF/androidx.versionedparcelable_versionedparcelable.version'
            exclude 'META-INF/androidx.interpolator_interpolator.version'
            exclude 'META-INF/androidx.fragment_fragment.version'
            exclude 'META-INF/androidx.customview_customview.version'
            exclude 'META-INF/androidx.documentfile_documentfile.version'
            exclude 'META-INF/androidx.vectordrawable_vectordrawable.version'
            exclude 'META-INF/androidx.legacy_legacy-support-core-utils.version'
            exclude 'META-INF/androidx.loader_loader.version'
            exclude 'META-INF/androidx.viewpager_viewpager.version'
            exclude 'META-INF/androidx.asynclayoutinflater_asynclayoutinflater.version'
            exclude 'META-INF/androidx.core_core.version'
            exclude 'META-INF/androidx.vectordrawable_vectordrawable-animated.version'
            exclude 'META-INF/androidx.slidingpanelayout_slidingpanelayout.version'
            exclude 'META-INF/androidx.coordinatorlayout_coordinatorlayout.version'
            exclude 'META-INF/androidx.legacy_legacy-support-core-ui.version'
        }
        dexOptions {
          javaMaxHeapSize "4g"
        }
        defaultConfig {
            renderscriptTargetApi 19
            renderscriptSupportModeEnabled true
            multiDexEnabled true
            applicationId "com.smarttransitio"
            minSdkVersion rootProject.ext.minSdkVersion
            targetSdkVersion rootProject.ext.targetSdkVersion
            versionCode 1
            versionName "1.0"
            ndk {
                abiFilters "armeabi-v7a", "x86"
            }
        }
        signingConfigs {
            release {
                if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                    storeFile file(MYAPP_RELEASE_STORE_FILE)
                    storePassword MYAPP_RELEASE_STORE_PASSWORD
                    keyAlias MYAPP_RELEASE_KEY_ALIAS
                    keyPassword MYAPP_RELEASE_KEY_PASSWORD
                }
            }
        }
        splits {
            abi {
                reset()
                enable enableSeparateBuildPerCPUArchitecture
                universalApk false  // If true, also generate a universal APK
                include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
            }
        }
        buildTypes {
            debug {
                minifyEnabled enableProguardInReleaseBuilds
                shrinkResources true
                proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
                signingConfig signingConfigs.release
    
            }
        }
        // applicationVariants are e.g. debug, release
        applicationVariants.all { variant ->
            variant.outputs.each { output ->
                // For each separate APK per architecture, set a unique version code as described here:
                // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
                def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a": 3, "x86_64": 4]
                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 {
        implementation project(':@react-native-mapbox-gl_maps')
        implementation project(':react-native-background-fetch')
        implementation project(':react-native-nfc-manager')
        implementation project(':react-native-background-timer')
        implementation project(':react-native-background-geolocation')
        implementation project(':react-native-keep-awake')
        implementation project(':react-native-smartwifi')
        implementation project(':react-native-smartnfc')
        implementation project(':react-native-imei')
        implementation project(':react-native-splash-screen')
        implementation project(':react-native-branch')
        implementation 'com.android.support:multidex:1.0.3'
        implementation 'com.google.firebase:firebase-core:16.0.9'
        implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
        implementation project(':react-native-fused-location')
        implementation project(':react-native-vector-icons')
        implementation project(':react-native-shimmer')
        implementation project(':react-native-linear-gradient')
        implementation project(':react-native-image-picker')
        implementation project(':react-native-i18n')
        implementation 'com.google.android.material:material:1.0.0-alpha1'
        implementation(project(":react-native-device-info"), {
            exclude group: "com.google.android.gms"
        })
        implementation "com.google.android.gms:play-services-gcm:16.0.0"
        implementation fileTree(dir: "libs", include: ["*.jar"])
        implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
        implementation "com.facebook.react:react-native:0.59.9"  // From node_modules
    }
    
    // Run this once to be able to run the application with BUCK
    // puts all implementation dependencies into folder libs for BUCK to use
    task copyDownloadableDepsToLibs(type: Copy) {
        from configurations.compile
        into 'libs'
    }
    apply plugin: 'com.google.gms.google-services'
    
    // [Added by react-native-background-geolocation] Purge debug sounds from release build.
    def purgeBackgroundGeolocationDebugResources(applicationVariants) {
        if ((rootProject.ext.has("removeBackgroundGeolocationDebugSoundsInRelease")) && (rootProject.ext.removeBackgroundGeolocationDebugSoundsInRelease == false)) return
        applicationVariants.all { variant ->
            if (variant.buildType.name == "release") {
                println("[react-native-background-geolocation] Purging debug resources in release build")
                variant.mergeResources.doLast {
                    delete(fileTree(dir: variant.mergeResources.outputDir, includes: ["raw_tslocationmanager*"]))
                }
            }
        }
    }
    

    react-原生版本- 0.59

  • 共有2个答案

    方增
    2023-03-14

    也许可以尝试使用以下命令运行第一个终端:< code > NPM start--reset-cache

    然后是第二个:< code > react-native run-Android

    百里阳平
    2023-03-14

    如果是这种情况,您可以尝试运行“jetifa”将库迁移到Android。(如果有使用Android的本机依赖项。)

    1. npm安装-保存开发程序
    2. npx jetify
    3. npx反应-原生运行-Android
     类似资料:
    • 我正在尝试将有关集合用户中注册用户的数据写入我的Cloud Firestone用户,当然它必须与授权中的UID代码相关联(注册/登录系统正常工作并在我的Firebase中编写auth)。 XML注册按钮: JAVA寄存器: 。。。 。。。 在Cloud Firestone中,我刚刚创建了集合用户。我注意到在工具中 ✓ 已连接 但即使我已经点击并似乎构建正确,底部的“将云Firestone添加到你的

    • 我在android studio上构建新项目时遇到了一个问题。我不断发现错误: 这是我的项目构建。格拉德尔 这个问题只发生在我尝试构建的新项目上,而在旧项目上不是问题。我已通读R.txt':数据无效。(13) 这导致Android Studio中出现长包名构建错误,但仍然无法解决问题。 我只在使用Windows10(更新1909)时遇到这个问题,而在ubuntu上使用android studio时

    • 我所有的绘图都很好,它们没有任何错误,就像我的XML文件一样。我试图使缓存无效并重建请帮助我也检查了我的代码,但没有错误

    • 问题内容: 我看到很多其他人都在问同样的问题,但是没有发布的解决方案对我有帮助。 我正在尝试从我的Android应用程序将(二进制)文件写入外部存储。我输入了清单,但仍然无法创建任何文件。我用来创建文件的代码是 对的调用失败,并引发(ENOENT,因为该目录不存在) 有人知道怎么回事吗?我什至尝试过重启设备。如果有任何区别,我使用的是Nexus 7的API级别8。 问题答案: 首先,您应该检查Ex

    • 我在Android Studio中生成签名的APK有一个问题。几天前它还很好,我不知道哪里出了问题。我在尝试fgenerate签名APK的任何项目中都得到了这个错误:

    • 我使用PDFBox在JAVA中实现了签名功能。 我的代码的签名部分是: 如果我使用用keytool命令生成的测试自动签名证书,一切都会正常工作。 问题是,当我用一个真正经过认证的现有证书尝试这段代码时,我得到了一个例外: 我不知道为什么这行不通... 任何帮助都将不胜感激!=)