【问题标题】:No toolchains found in the NDK toolchains folder for ABI with prefix: mipsel-linux-android error in Android Studio在 ABI 的 NDK 工具链文件夹中找不到工具链,前缀为:Android Studio 中的 mipsel-linux-android 错误
【发布时间】:2019-04-28 13:11:39
【问题描述】:

我有一个工作项目,但 Android Studio 显示断点时出现了一些问题,所以我在我的 Mac 上卸载了 Android Studio,重新安装并打开了相同的工作项目。奇怪的是,它给出了以下错误,我对此无能为力。在线建议的修复程序似乎都没有帮助这种情况。

卸载第一版Android Studio有什么关系吗?

我的项目代码绝对没有变化。同一个项目在我队友的 Android Studio 上运行良好。以下是我得到的错误:

“在 ABI 的 NDK 工具链文件夹中找不到工具链,前缀为:mipsel-linux-android”

org.gradle.api.ProjectConfigurationException:出现问题 配置项目':app'。 在 org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:94) 在 org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:89) 在 org.gradle.configuration.project.LifecycleProjectEvaluator.doConfigure(LifecycleProjectEvaluator.java:76) 在 org.gradle.configuration.project.LifecycleProjectEvaluator.access$000(LifecycleProjectEvaluator.java:33) 在 org.gradle.configuration.project.LifecycleProjectEvaluator$1.execute(LifecycleProjectEvaluator.java:53) 在 org.gradle.configuration.project.LifecycleProjectEvaluator$1.execute(LifecycleProjectEvaluator.java:50) 在 org.gradle.internal.Transformers$4.transform(Transformers.java:169) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61) 在 org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:50) 在 org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:628) 在 org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:129) 在 org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:35) 在 org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:62) 在 org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:38) 在 org.gradle.initialization.DefaultGradleLauncher$1.execute(DefaultGradleLauncher.java:161) 在 org.gradle.initialization.DefaultGradleLauncher$1.execute(DefaultGradleLauncher.java:158) 在 org.gradle.internal.Transformers$4.transform(Transformers.java:169) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56) 在 org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:158) 在 org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:119) 在 org.gradle.initialization.DefaultGradleLauncher.getBuildAnalysis(DefaultGradleLauncher.java:107) 在 org.gradle.launcher.exec.GradleBuildController.configure(GradleBuildController.java:79) 在 org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:60) 在 org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) 在 org.gradle.tooling.internal.provider.runner.RunAsBuildOperationBuildActionRunner$1.execute(RunAsBuildOperationBuildActionRunner.java:43) 在 org.gradle.tooling.internal.provider.runner.RunAsBuildOperationBuildActionRunner$1.execute(RunAsBuildOperationBuildActionRunner.java:40) 在 org.gradle.internal.Transformers$4.transform(Transformers.java:169) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56) 在 org.gradle.tooling.internal.provider.runner.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:40) 在 org.gradle.tooling.internal.provider.runner.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:75) 在 org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) 在 org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41) 在 org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) 在 org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75) 在 org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49) 在 org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:44) 在 org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:29) 在 org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67) 在 org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:47) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74) 在 org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72) 在 org.gradle.util.Swapper.swap(Swapper.java:38) 在 org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60) 在 org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72) 在 org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50) 在 org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297) 在 org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54) 在 org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745) 原因:java.lang.RuntimeException:在 ABI 的 NDK 工具链文件夹中找不到工具链,前缀为:mipsel-linux-android 在 com.android.build.gradle.internal.ndk.DefaultNdkInfo.getDefaultToolchainVersion(DefaultNdkInfo.java:330) 在 com.android.build.gradle.internal.ndk.DefaultNdkInfo.getToolchainPath(DefaultNdkInfo.java:207) 在 com.android.build.gradle.internal.ndk.DefaultNdkInfo.getStripExecutable(DefaultNdkInfo.java:300) 在 com.android.build.gradle.internal.ndk.NdkHandler.getStripExecutable(NdkHandler.java:333) 在 com.android.build.gradle.internal.transforms.StripDebugSymbolTransform.(StripDebugSymbolTransform.java:73) 在 com.android.build.gradle.internal.TaskManager.createStripNativeLibraryTask(TaskManager.java:1339) 在 com.android.build.gradle.internal.ApplicationTaskManager.createTasksForVariantData(ApplicationTaskManager.java:289) 在 com.android.build.gradle.internal.VariantManager.createTasksForVariantData(VariantManager.java:485) 在 com.android.build.gradle.internal.VariantManager$3.call(VariantManager.java:293) 在 com.android.build.gradle.internal.VariantManager$3.call(VariantManager.java:290) 在 com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:156) 在 com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:120) 在 com.android.build.gradle.internal.profile.SpanRecorders.record(SpanRecorders.java:44) 在 com.android.build.gradle.internal.VariantManager.createAndroidTasks(VariantManager.java:286) 在 com.android.build.gradle.BasePlugin$11.call(BasePlugin.java:688) 在 com.android.build.gradle.BasePlugin$11.call(BasePlugin.java:685) 在 com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:156) 在 com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:120) 在 com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:683) 在 com.android.build.gradle.BasePlugin$10.call(BasePlugin.java:608) 在 com.android.build.gradle.BasePlugin$10.call(BasePlugin.java:605) 在 com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:156) 在 com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:120) 在 com.android.build.gradle.BasePlugin.lambda$createTasks$1(BasePlugin.java:603) 在 org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:93) 在 org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:82) 在 org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44) 在 org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:79) 在 org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:30) 在 org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) 在 com.sun.proxy.$Proxy16.afterEvaluate(Unknown Source)

【问题讨论】:

标签: android android-studio android-ndk android-gradle-plugin


【解决方案1】:

根据https://github.com/android-ndk/ndk/wiki/Changelog-r18#known-issues

此版本的 NDK 与 Android Gradle 插件版本 3.0 或更早版本不兼容。如果您在 ABI 的 NDK 工具链文件夹中看到类似 No toolchains 的错误,前缀为 mips64el-linux-android,请更新您的项目文件以使用插件版本 3.1 或更高版本。您还需要升级到 Android Studio 3.1 或更高版本。

解决方法如下: (https://stackoverflow.com/a/51852529/8034839)

选项 1:

buildTypes {
    debug {
        externalNativeBuild {
            cmake {
                abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
            }
        }
    }
    release {
        externalNativeBuild {
            cmake {
                abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
            }
        }
    }
}

选项 2:

android {
    ...
    packagingOptions{
        doNotStrip '*/mips/*.so'
        doNotStrip '*/mips64/*.so'
    }
    ...
}

【讨论】:

    【解决方案2】:

    升级你的 Gradle 插件

    classpath 'com.android.tools.build:gradle:3.2.1'
    

    或前往:

    ~/Library/Android/sdk/ndk-bundle
    

    并下载 NDK 17 https://developer.android.com/ndk/downloads/older_releases

    使用新的 NDK 17 更改 /android/sdk/ndk-bundle 中的 NDK

    并将类路径更改为:

    classpath 'com.android.tools.build:gradle:2.2.2'
    

    快乐编码:)

    【讨论】:

    • 嗨Hichem,我把下载的android-ndk-r17c文件夹放在了ndk-bundle文件夹下。但这似乎不起作用。我做错什么了吗?
    • 更改类路径'com.android.tools.build:gradle:3.2.1'
    • 我将类路径更改为 3.2.1,然后显示以下消息最低支持的 Gradle 版本为 4.6。当前版本是 3.3。请修复项目的 Gradle 设置。修复 Gradle 包装器并重新导入项目 Gradle 设置。当我单击 FIx Gradle 包装器时,出现以下错误:无法为 ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=goldProdDebug, filters=[], versionCode=4202448, com.android.build.gradle.internal.api.ApkVariantOutputImpl 类型的 versionName=3.7-debug}}。
    • 将 classpth 更改为 2.2.2
    • 嘿,非常感谢,终于修好了。我用从 NDK-17 bundle 下载的 toolchains 文件夹的内容替换了 ndk-bundle 中的 toolchains 文件夹的内容。
    猜你喜欢
    • 2019-05-14
    • 2019-02-11
    • 2016-09-30
    • 2017-10-20
    • 2016-05-09
    • 2023-03-02
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    相关资源
    最近更新 更多