更新MainApplication.java后反应本机导航中的错误

问题描述 投票:0回答:1

我安装了本机导航,并按照以下步骤操作。适用于iOS。不在android上。更新“ MainApplication.java”文件后,运行react-native run-android时出现此错误:

[任务:app:compileDebugJavaWithJavac FAILED

此构建中使用了不推荐使用的Gradle功能,与Radle 6.0不兼容。使用'--warning-mode all'来显示个别弃用警告。看到https://docs.gradle.org/5.5/userguide/command_line_interface.html#sec:command_line_warnings43个可执行的任务:2个已执行,41个是最新的/home/wilux/rnApp/android/app/src/main/java/com/rnApp/MainApplication.java:17:错误:MainApplication不是抽象的,不会覆盖中的抽象方法createAdditionalReactPackages()NavigationApplication公共类MainApplication扩展NavigationApplication {^ 1个错误

FAILURE:构建因异常而失败。

  • 出了什么问题:任务':app:compileDebugJavaWithJavac'的执行失败。

    编译失败;有关详细信息,请参见编译器错误输出。

  • 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行,以获取更多日志输出。使用--scan运行以获取完整的见解。

  • https://help.gradle.org获取更多帮助

4秒内失败

错误无法安装应用程序。确保您拥有Android开发环境搭建:https://facebook.github.io/react-native/docs/getting-started.html#android-development-environment。使用--verbose标志运行CLI以获取更多详细信息。错误:命令失败:./gradlew app:安装调试-PreactNativeDevServerPort = 8081/home/wilux/rnApp/android/app/src/main/java/com/rnApp/MainApplication.java:17:错误:MainApplication不是抽象的,并且不会覆盖抽象NavigationApplication public中的方法createAdditionalReactPackages()MainApplication类扩展了NavigationApplication {^ 1个错误

FAILURE:构建因异常而失败。

  • 出了什么问题:任务':app:compileDebugJavaWithJavac'的执行失败。

    编译失败;有关详细信息,请参见编译器错误输出。

  • 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行,以获取更多日志输出。使用--scan运行以获取完整的见解。

  • https://help.gradle.org获取更多帮助

4秒内失败

at checkExecSyncError (child_process.js:610:11)
at execFileSync (child_process.js:628:15)
at runOnAllDevices (/home/wilux/rnApp/node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/runOnAllDevices.js:94:39)
at buildAndRun (/home/wilux/rnApp/node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/index.js:158:41)
at /home/wilux/rnApp/node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/index.js:125:12
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async Command.handleAction (/home/wilux/rnApp/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js:164:9)

奇怪的是,当我更新“ android / build.gradle”和“ android / app / build.gradle”文件时,它起作用了!

这里是更新的文件(MainApplication.java):

package com.rnApp;

import android.app.Application;
import android.content.Context;
import com.facebook.react.PackageList;
import com.facebook.react.ReactApplication;
import com.oblador.vectoricons.VectorIconsPackage;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.soloader.SoLoader;
import com.reactnativenavigation.NavigationApplication;
import com.reactnativenavigation.react.NavigationReactNativeHost;
import com.reactnativenavigation.react.ReactGateway;
import java.lang.reflect.InvocationTargetException;
import java.util.List;

public class MainApplication extends NavigationApplication {
    
        @Override
        protected ReactGateway createReactGateway() {
            ReactNativeHost host = new NavigationReactNativeHost(this, isDebug(), createAdditionalReactPackages()) {
                @Override
                protected String getJSMainModuleName() {
                    return "index";
                }
            };
            return new ReactGateway(this, isDebug(), host);
        }
    
        @Override
        public boolean isDebug() {
            return BuildConfig.DEBUG;
        }
    
        protected List<ReactPackage> getPackages() {
            // Add additional packages you require here
            // No need to add RnnPackage and MainReactPackage
            return Arrays.<ReactPackage>asList(
                // eg. new VectorIconsPackage()
            );
        }
    
        @Override
        public List<ReactPackage> createAdditionalReactPackages() {
            return getPackages();
        }
    }
react-native react-native-navigation wix-react-native-navigation
1个回答
0
投票

这在黑暗中有点刺破,但对我来说,可以通过执行gradle clean任务来解决90%的android构建问题(尤其是当您修改本地文件时:)>

  1. 进入项目的android目录(cd android
  2. 正在运行gradlew clean(Windows:.\gradlew.bat clean OSX / Linux:./gradlew clean
  3. 尝试重建
© www.soinside.com 2019 - 2024. All rights reserved.