okta / okta-react-native

OIDC enablement for React Native applications
https://github.com/okta/okta-react-native
Other
58 stars 39 forks source link

Error generating debug R file while building #323

Open thekevinbrown opened 2 years ago

thekevinbrown commented 2 years ago

Describe the bug?

We often experience the following issue when trying to build our React Native application for Android:

gradle: Execution failed for task ':okta-react-native:generateDebugRFile'.
gradle: > A failure occurred while executing com.android.build.gradle.internal.res.GenerateLibraryRFileTask$GenerateLibRFileRunnable
gradle:    > [project path]/src/node_modules/.pnpm/@okta+okta-react-native@2.5.0_6a8aa212aad327edf7fc3cad5533ab53/node_modules/@okta/okta-react-native/android/build/intermediates/local_only_symbol_list/debug/R-def.txt

What is expected to happen?

I expect the build to work reliably.

What is the actual behavior?

When this error occurs, we clear the build caches then rebuild and are able to build successfully. It seems that there are undeclared dependencies between your build steps, as we also see a bunch of warnings like so:

gradle: Execution optimizations have been disabled for task ':okta-react-native:compileDebugJavaWithJavac' to ensure correctness due to the following reasons:
gradle:   - Gradle detected a problem with the following location: '[project path]/src/node_modules/.pnpm/@okta+okta-react-native@2.5.0_6a8aa212aad327edf7fc3cad5533ab53/node_modules/@okta/okta-react-native/android/build/generated/aidl_source_output_dir/debug/out'. Reason: Task ':okta-react-native:compileDebugJavaWithJavac' uses this output of task ':okta_okta-react-native:compileDebugAidl' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.4.2/userguide/validation_problems.html#implicit_dependency for more details about this problem.
gradle:   - Gradle detected a problem with the following location: '[project path]/src/node_modules/.pnpm/@okta+okta-react-native@2.5.0_6a8aa212aad327edf7fc3cad5533ab53/node_modules/@okta/okta-react-native/android/build/generated/renderscript_source_output_dir/debug/out'. Reason: Task ':okta-react-native:compileDebugJavaWithJavac' uses this output of task ':okta_okta-react-native:compileDebugRenderscript' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.4.2/userguide/validation_problems.html#implicit_dependency for more details about this problem.
gradle: - Gradle detected a problem with the following location: '[project path]/src/node_modules/.pnpm/@okta+okta-react-native@2.5.0_6a8aa212aad327edf7fc3cad5533ab53/node_modules/@okta/okta-react-native/android/build/intermediates/compile_r_class_jar/debug/R.jar'. Reason: Task ':okta-react-native:compileDebugJavaWithJavac' uses this output of task ':okta_okta-react-native:generateDebugRFile' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.4.2/userguide/validation_problems.html#implicit_dependency for more details about this problem.
gradle: 
gradle: > Task :okta_okta-react-native:generateDebugBuildConfig UP-TO-DATE
gradle: > Task :okta_okta-react-native:javaPreCompileDebug UP-TO-DATE
gradle: 
gradle: > Task :okta-react-native:bundleLibCompileToJarDebug FAILED
gradle: Execution optimizations have been disabled for task ':okta-react-native:bundleLibCompileToJarDebug' to ensure correctness due to the following reasons:
gradle:   - Gradle detected a problem with the following location: '[project path]/src/node_modules/.pnpm/@okta+okta-react-native@2.5.0_6a8aa212aad327edf7fc3cad5533ab53/node_modules/@okta/okta-react-native/android/build/intermediates/compile_r_class_jar/debug/R.jar'. Reason: Task ':okta-react-native:bundleLibCompileToJarDebug' uses this output of task ':okta_okta-react-native:generateDebugRFile' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.4.2/userguide/validation_problems.html#implicit_dependency for more details about this problem.
gradle: > Task :okta_okta-react-native:compileDebugJavaWithJavac
gradle: Execution optimizations have been disabled for task ':okta_okta-react-native:compileDebugJavaWithJavac' to ensure correctness due to the following reasons:
gradle:   - Gradle detected a problem with the following location: '[project path]/src/node_modules/.pnpm/@okta+okta-react-native@2.5.0_6a8aa212aad327edf7fc3cad5533ab53/node_modules/@okta/okta-react-native/android/build/generated/aidl_source_output_dir/debug/out'. Reason: Task ':okta_okta-react-native:compileDebugJavaWithJavac' uses this output of task ':okta-react-native:compileDebugAidl' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.4.2/userguide/validation_problems.html#implicit_dependency for more details about this problem.
gradle:   - Gradle detected a problem with the following location: '[project path]/src/node_modules/.pnpm/@okta+okta-react-native@2.5.0_6a8aa212aad327edf7fc3cad5533ab53/node_modules/@okta/okta-react-native/android/build/generated/renderscript_source_output_dir/debug/out'. Reason: Task ':okta_okta-react-native:compileDebugJavaWithJavac' uses this output of task ':okta-react-native:compileDebugRenderscript' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.4.2/userguide/validation_problems.html#implicit_dependency for more details about this problem.
gradle:   - Gradle detected a problem with the following location: '[project path]/src/node_modules/.pnpm/@okta+okta-react-native@2.5.0_6a8aa212aad327edf7fc3cad5533ab53/node_modules/@okta/okta-react-native/android/build/generated/source/buildConfig/debug'. Reason: Task ':okta_okta-react-native:compileDebugJavaWithJavac' uses this output of task ':okta-react-native:generateDebugBuildConfig' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.4.2/userguide/validation_problems.html#implicit_dependency for more details about this problem.
gradle:   - Gradle detected a problem with the following location: '[project path]/src/node_modules/.pnpm/@okta+okta-react-native@2.5.0_6a8aa212aad327edf7fc3cad5533ab53/node_modules/@okta/okta-react-native/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json'. Reason: Task ':okta_okta-react-native:compileDebugJavaWithJavac' uses this output of task ':okta-react-native:javaPreCompileDebug' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.4.2/userguide/validation_problems.html#implicit_dependency for more details about this problem.
gradle:   - Gradle detected a problem with the following location: '[project path]/src/node_modules/.pnpm/@okta+okta-react-native@2.5.0_6a8aa212aad327edf7fc3cad5533ab53/node_modules/@okta/okta-react-native/android/build/intermediates/compile_r_class_jar/debug/R.jar'. Reason: Task ':okta_okta-react-native:compileDebugJavaWithJavac' uses this output of task ':okta-react-native:generateDebugRFile' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.4.2/userguide/validation_problems.html#implicit_dependency for more details about this problem.
gradle: 
gradle: > Task :app:processDebugManifestForPackage
gradle: 
gradle: Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
gradle: 
gradle: You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
gradle: 
gradle: See https://docs.gradle.org/7.4.2/userguide/command_line_interface.html#sec:command_line_warnings
gradle: 
gradle: Execution optimizations have been disabled for 11 invalid unit(s) of work during this build to ensure correctness.

Reproduction Steps?

Build the application with the React Native CLI. We're currently running

Additional Information?

A great starting point would be to declare the dependencies between the build steps, which I suspect would resolve this error.

SDK Version

2.5.0

Build Information

buildscript {
    ext {
        buildToolsVersion = "30.0.2"
        minSdkVersion = 21
        compileSdkVersion = 31
        targetSdkVersion = 31
        playServicesVersion = "17.0.0"
        androidMapsUtilsVersion = "2.2.2"
        ndkVersion = "21.4.7075529"
    }
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:4.2.2")
    }
}

allprojects {
    repositories {
        maven {
             url(new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), "../android"))
        }
        maven {
            url(new File(["node", "--print", "require.resolve('jsc-android/package.json')"].execute(null, rootDir).text.trim(), "../dist"))
        }
    mavenCentral {
        // We don't want to fetch react-native from Maven Central as there are
            // older versions over there.
            content {
                excludeGroup "com.facebook.react"
            }
    }
        google()
        maven { url 'https://www.jitpack.io' }
    }
}
mikenachbaur-okta commented 2 years ago

Thank you for reporting this. @jaynewstrom-okta could you take a look at this when you have a chance?

ghost commented 1 year ago

@thekevinbrown ....I got this error if i run it on emulator. code worked fine on simulator.

Screenshot 2022-11-16 at 1 43 58 AM

guide me how to clear this error. error screenshot is attached

thekevinbrown commented 1 year ago

The only solution we as consumers of the library have is to clean and rebuild over and over again until the timing manages to work out. It sometimes takes 7 or 8 builds on my machine for it to work. If Okta declare the dependencies correctly this will go away for people.

eithe commented 1 year ago

Seeing the same. Wondering why this is happening, seems to not happen to everyone. I've also seen the same on @react-native-community/netinfo (https://github.com/react-native-netinfo/react-native-netinfo/issues/639), but that went away.

lbuttignol commented 1 year ago

It also happens with: