>在/ opt / android-sdk-linux中找不到哈希字符串为“ android-26”的目标 [英] > Failed to find target with hash string 'android-26' in: /opt/android-sdk-linux

查看:125
本文介绍了>在/ opt / android-sdk-linux中找不到哈希字符串为“ android-26”的目标的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


  • Ubuntu 16.04

  • / opt / android-sdk-linux上的android-sdk

  • 配置的android home出口ANDROID_HOME = / opt / android-sdk-linux /)

  • / opt / android-sdk-linux /

  • 中没有其他工具文件夹


我的gradle文件:

  android {
compileSdkVersion 26
buildToolsVersion 21.1.0
defaultConfig {
applicationId hu.prject.sandbox.sample
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName 1.0
testInstrumentationRunner android.support.test.runner.AndroidJUnitRunner
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
}

在项目中运行 ./ gradelew clean build 时文件夹,我得到以下输出:



启动Gradle守护进程(后续构建会更快)
准备安装Android SDK Build-Tools 21.1。
准备安装Android SDK Build-Tools 21.1。
完成安装Android SDK Build-Tools 21.1
在/opt/android-sdk-linux/build-tools/21.1.0中安装Android SDK Build-Tools 21.1
安装Android SDK Build-Tools 21.1已完成。
正在准备安装Android SDK平台26。
准备安装Android SDK Platform 26。
完成安装Android SDK平台26
在/ opt / android-sdk-linux / platforms / android-26中安装Android SDK平台26
安装Android SDK平台26完成。 / p>

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



出了什么问题:
配置项目时发生问题':app'。



在以下位置找不到带有哈希字符串'android-26'的目标:/ opt / android-sdk-linux



重要:在我的情况下,
没有android studio,没有ui,只有CLI



存在android-26文件夹,其内容位于/ opt / android-sdk-linux / platforms /

解决方案


  1. 从中删除所有以前的android sdk文件/ opt /

  2. cd / opt&& wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip

  3. 解压缩sdk-tools-linux-3859397.zip -d android-sdk-linux


  4. nano /etc/profile.d/android.sh


粘贴以下行:

  export ANDROID_HOME = / opt / android-sdk-linux 
export PATH = $ ANDROID_HOME / tools:$ ANDROID_HOME / platform-tools:$ PATH




  1. source / etc / profile

检查android home:

  echo $ ANDROID_HOME 



    / opt / android-sdk-linux中的


  1. tools / bin / sdkmanager --update



    tools / bin / sdkmanager platforms; android-26 build-tools; 26.0。 2 extras; google; m2repository extras; android; m2repository



    tools / bin / sdkmanager- -许可证


在这一点上可能就足够了,构建可以正常工作...



但是在我的情况下,缺少一些依赖项,并与

进行检查

tools / bin / sdkmanager --list



使用缺少依赖项
tools / bin / sdkmanager extras; m2repository; com; android; support; constraint; constraint-layout; 1.0.0-alpha9



tools / bin / sdkmanager extras; m2repository; com; android; support; constraint; constraint-layout-solver; 1.0.0-alpha9



在这些构建成功之后



感谢NinjaCoder提供有关构建工具版本的帮助


  • Ubuntu 16.04
  • android-sdk at /opt/android-sdk-linux
  • android home confugired (export ANDROID_HOME="/opt/android-sdk-linux/")
  • there is no additional tools folder in /opt/android-sdk-linux/

my gradle file:

android {
    compileSdkVersion 26
    buildToolsVersion "21.1.0"
    defaultConfig {
        applicationId "hu.prject.sandbox.sample"
        minSdkVersion 21
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

when run ./gradelew clean build in the project folder, I got this output:

Starting a Gradle Daemon (subsequent builds will be faster) Preparing "Install Android SDK Build-Tools 21.1". "Install Android SDK Build-Tools 21.1" ready. Finishing "Install Android SDK Build-Tools 21.1" Installing Android SDK Build-Tools 21.1 in /opt/android-sdk-linux/build-tools/21.1.0 "Install Android SDK Build-Tools 21.1" complete. Preparing "Install Android SDK Platform 26". "Install Android SDK Platform 26" ready. Finishing "Install Android SDK Platform 26" Installing Android SDK Platform 26 in /opt/android-sdk-linux/platforms/android-26 "Install Android SDK Platform 26" complete.

FAILURE: Build failed with an exception.

What went wrong: A problem occurred configuring project ':app'.

Failed to find target with hash string 'android-26' in: /opt/android-sdk-linux

IMPORTANT: in my case no android studio, no ui, only CLI

There is android-26 folder exist with content at /opt/android-sdk-linux/platforms/

解决方案

  1. remove all previous android sdk files from /opt/
  2. cd /opt && wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
  3. unzip sdk-tools-linux-3859397.zip -d android-sdk-linux

  4. nano /etc/profile.d/android.sh

paste this lines:

export ANDROID_HOME="/opt/android-sdk-linux"
export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH"

  1. source /etc/profile

check android home:

echo $ANDROID_HOME

  1. in /opt/android-sdk-linux

    tools/bin/sdkmanager --update

    tools/bin/sdkmanager "platforms;android-26" "build-tools;26.0.2" "extras;google;m2repository" "extras;android;m2repository"

    tools/bin/sdkmanager --licenses

maybe enough at this point and the build will work...

but in my case missing some dependency, and check with

tools/bin/sdkmanager --list

update with the missing dependencies tools/bin/sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha9"

tools/bin/sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha9"

after these build success

thanks for help NinjaCoder about build tool version

这篇关于>在/ opt / android-sdk-linux中找不到哈希字符串为“ android-26”的目标的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆