android运行项目环境及版本报错与解决

发布时间:2024年01月11日

? 当运行一个新的项目时,我们经常会遇到gradle相关的报错,常见为can't download或是can't get sourcexx导致项目无法编译,所以本文对刚开始编写安卓项目时遇到的环境问题作整理以及解决。

问题背景:当学习他人的项目或者为了和项目合作者在相同运行环境导入外部项目

1.项目导入编译时
  • Could not install Gradle distribution from 'https://services.gradle.org/distributions/gradle-5.4.1-all.zip'.

    • 问题描述:无法下载5.4.1版本的gradle

    • 可能原因:

      • 网络问题,gradle服务器或是代理仓库在国外,导致下载不下来
      • gradle与gradle plugin版本不匹配
    • 解决方案:

      • 将依赖换成国内的镜像源;

        • 下列为我搜索多个博客获得的多个依赖地址,具体网址已经找不到

        在build.gradle(项目名)文件夹下的buildscript

      1. 与项目合作者相同环境的情况,一般会使用一些常用框架

        repositories {
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://developer.huawei.com/repo/' }
            google()
                mavenCentral()
        }
        
      2. 采用国内镜像

        repositories {
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
            maven { url 'https://gitee.com/liuchaoya/libcommon/raw/master/repository/' }
            maven { url "https://www.jitpack.io" }
            jcenter()
        }
        
      3. 阿里云代替goodle、jcenter

        repositories {
            maven {url 'https://maven.aliyun.com/repository/jcenter'}
            maven {url 'https://maven.aliyun.com/repository/google'}
            maven {url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
        }
        

      在这里插入图片描述

      • gradle插件版本的定义在build.gradle(项目名)文件里
        在这里插入图片描述

      • :如果报错提示没有说明gradle plugin等的字眼,则该匹配关系大概率没有错

    • 如果上诉方案都没有起作用,可能是下载的android studio有问题,则可以手动将gradle文件下载导入对应的配置文件夹,或者修改为文件夹中已有的gradle版本

      • 自行下载文件导入对应配置文件夹下,默认目录是C:\Users\user\.gradle\wrapper\dists

      • 项目运行的时候,也会遇到一些找不到某文件等的错误
        如Can‘t determine type for tag ‘<macro name=“m3_comp_bottom_app_bar_container_color“>
        原因则是导入的第三方依赖库版本太高了,不匹配,需要修改版本

  • 说明:

    上述问题仅是某一问题的案例,常见的还有无法下载某网址或者HttpRequestException网络异常等报错,如下:

    • org.gradle.internal.resource.transport.http.HttpRequestException:Could not GET ‘xxx.jar’
    • Could not get source 'https://..'Could not HEAD 'https://...

    涉及以上相关的,都是因为网络问题导致某些资源文件下载不下来,修改上方解决方案的依赖仓库则可以解决大部分问题。

  • 一般直接修改仓库地址就可以解决问题,但刚接触的时候搜不到最根本影响的,可能根据搜到的乱修改产生其他的问题,如gradle版本升级等。

    这个时候就要根据产生的错误提示来对症找解决方法。

2.项目运行的时候
1.导入的第三方依赖库版本过高
  • resource android:color/system_neutral1_1000 not found.

  • Can‘t determine type for tag ‘<macro name=“m3_comp_bottom_app_bar_container_color“

    • 原因分析:导入的第三方框架版本太高,与项目中的配置不匹配

    • 解决:降低版本,与appcompatmaterial版本匹配

      • 解决方法参考:https://blog.csdn.net/weixin_44440669/article/details/127753568

      build.gradle(:app)的dependencies

      dependencies {
      	//appcompat等的版本
          implementation 'androidx.appcompat:appcompat:1.3.0'
          implementation 'com.google.android.material:material:1.4.0'
          //导入的第三方框架的版本
          implementation 'com.squareup.retrofit2:retrofit:2.5.0'
          implementation 'com.squareup.retrofit2:converter-gson:2.0.2'
      }
      
2.新建项目时sdk版本太高
3. 低版本可运行环境

build.gradle(:app)

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.3"
    defaultConfig {

        applicationId "com.example.booktest"
        minSdkVersion 26
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        ...
    }
    ...
}
//dependencies版本降低
dependencies {

    implementation 'androidx.appcompat:appcompat:1.3.0'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
}
3.导入版本较久远的低版本项目
  • 例如:https://github.com/HouBin506/SocketPushClient
  1. 在vscode修改gradle版本和sdk版本,
  2. 修改为androidx:
    1. pro中添加运行解决:This project uses AndroidX dependencies, but the ‘android.useAndroidX’ property is not enabled.-CSDN博客
    2. build中修改Configuration ‘androidTestCompile’ is obsolete and has been replaced with 'androidTestImplementation-CSDN博客
    3. import修改Android Studio 3.4升级后的运行问题解决办法_解决android studio 升级过后support.v4以及support.v7爆红不能使用-CSDN博客
    4. 总的步骤总结:
      https://blog.csdn.net/u011041494/article/details/93849730
文章来源:https://blog.csdn.net/qq_56611561/article/details/135507184
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。