【问题标题】:After using android studio 3.1.2 it showing error=2, No such file or directory使用 android studio 3.1.2 后显示 error=2, No such file or directory
【发布时间】:2018-10-19 13:59:54
【问题描述】:

在 i7 和 24gb ram 的新桌面上安装 Ubuntu 18 后。我们尝试将 android studio 项目以 zip 格式移动到新电脑上,我们的项目在旧电脑上运行良好,但在新电脑上显示错误。

org.gradle.api.tasks.TaskExecutionException:执行失败 任务':app:transformNativeLibsWithStripDebugSymbolForDebug'。 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) 在 org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63) 在 org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) 在 org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) 在 org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88) 在 org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52) 在 org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) 在 org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) 在 org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) 在 org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99) 在 org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625) 在 org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99) 在 org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) 在 org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) 在 java.lang.Thread.run(Thread.java:745) 引起:org.gradle.process.internal.ExecException:启动进程'命令时出现问题 '/home/developer/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/mips64el-linux-android-strip'' 在 org.gradle.process.internal.DefaultExecHandle.execExceptionFor(DefaultExecHandle.java:220) 在 org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:204) 在 org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:340) 在 org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:86) 在 org.gradle.internal.operations.BuildOperationIdentifierPreservingRunnable.run(BuildOperationIdentifierPreservingRunnable.java:39) ... 6 更多原因:net.rubygrapefruit.platform.NativeException: 无法启动 '/home/developer/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/mips64el-linux-android-strip' 在 net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27) 在 net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36) 在 org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:68) ... 7 更多原因:java.io.IOException:无法运行程序 “/home/developer/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/mips64el-linux-android-strip” (在目录中 “/home/developer/Documents/working_app/valyangadi_firebase_project/app”): 错误=2,没有这样的文件或目录 java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) 在 net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25) ... 9 更多原因:java.io.IOException: error=2, No such file or java.lang.UNIXProcess.forkAndExec(Native Method) 的目录 java.lang.UNIXProcess.(UNIXProcess.java:247) 在 java.lang.ProcessImpl.start(ProcessImpl.java:134) 在 java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) ... 10 更多

这是什么错误以及如何解决这个问题? 这个项目在我使用 android studio 3.0 的旧笔记本电脑 Ubuntu 14.04 LTS 上运行良好

【问题讨论】:

  • 显然/home/developer/Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/mips64el-linux-android-strip 在您的新计算机上不存在。你真的需要为 mips64 构建吗?
  • 我也有同样的问题,但是..\prebuilt\windows-x86_64\bin\mips64el-linux-android-strip。我认为这与我昨天安装的 Android Studio 更新有关,但一切正常。今天尝试编译时,弹出这个错误。
  • 哪里可以下载旧版android studio?
  • 嗯,谷歌吗?不幸的是,我想到了这一点并将 AS 降级到 3.0.1 版,但没有任何改变。我仍然得到同样的错误,所以错误一定在其他地方。

标签: android-studio ubuntu android-ndk


【解决方案1】:

你应该检查你旧电脑上的 Android Studio 配置,并比较 Android SDK > SDK Tools中每个位置的版本:

就我而言,主要问题在于 Android NDK。显然我已经安装了版本 17 的更新,这导致了问题。所以我做了什么:

  1. 从目录 [android-sdk]\ndk-bundle\ 中删除所有内容Android Studio\Sdk 工具中卸载 Android NDK(参见上图)
  2. 关闭 Android Studio (AS)。
  3. https://developer.android.com/ndk/downloads/older_releases 下载(在我的情况下)NDK 版本 16b
  4. 解压存档(10个目录和8个文件左右)到[android-sdk]\ndk-bundle\
  5. 启动 AS 并执行完全刷新:Build > Refresh Linked C++ projectsBuild > Rebuild project

希望对你有帮助。

【讨论】:

  • 如果我使用基于 cordova 的 ionic 框架构建应用程序,因为它使用 Android SDK 和 NDK,我将如何进行刷新和重建?
  • 我不熟悉 Cordova,但根据this answer,您可以检查Android SDK directory 中是否有ndk-bundle 目录。如果是这样,请删除它,下载另一个包(如果需要,可以使用旧包)将其解压到某个地方并重命名为 ndk-bundle。然后将其粘贴到您删除先前 ndk 目录并重建的位置。
  • 是的,所以我这样做了,并且不再抛出异常,但现在我得到了有史以来最奇怪的异常,其中构建失败的异常是“已经完成”这是我的错误日志:“在 3 秒内构建失败(节点:31772)UnhandledPromiseRejectionWarning:错误:cmd:命令失败,退出代码 1 错误输出:FAILURE:构建失败并出现异常。* 出了什么问题:已经完成”对我。
  • 我会尝试重新启动 PC 并再次构建项目。如果没有帮助,请开始新问题,cmets 不是用来解决问题的。
  • 当我没有能力时,我无法真正开始提问。试图赢得足够的声誉以恢复该特权。我已经有很长时间没有提问的能力了。感谢您的帮助!
【解决方案2】:

将此代码包含在您的 build.gradle 中

defaultConfig {

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

【讨论】:

    【解决方案3】:

    Android NDK r17 不再支持 Mips。我遇到了同样的问题,在我的情况下,它是由包含预构建 mips 本机库的依赖项引起的。我能够通过在主 build.gradle 中排除 mips 文件来修复构建错误,如下所示:

    android {
        packagingOptions {
            exclude 'lib/mips64/NAME_OF_THE_LIB.so'
            exclude 'lib/mips/NAME_OF_THE_LIB.so'
        }
    }
    

    其中 NAME_OF_THE_LIB 必须替换为 so 文件的实际名称。您可以通过解压缩以前成功构建的 apk 找到它(如果有的话)。

    【讨论】:

      【解决方案4】:

      请按照以下简单步骤解决此问题:

      1. 关闭所有打开的文件。
      2. 关闭 Android Studio。
      3. 之后,重新启动您的 Mac,并从 Android Studio 重新构建您的项目。

      【讨论】:

        【解决方案5】:

        使缓存无效并重新启动为我修复了它。
        转至File > Invalidate Caches/Restart...

        希望它对你有用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-06-03
          • 2017-02-08
          • 2023-04-03
          • 1970-01-01
          • 2022-07-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多