Android Studio添加外部依赖出错问题解决

最近想要做一个展示图表的app,使用gradle构建时报错2天没有解决,最终在耐心钻研下终于成功运行,先将问题与解决办法总结如下

第一步 下载库文件.zip

MPAndroidChart:v3.1.0下载地址,https://github.com/PhilJay/MPAndroidChart
下载后解压获得MPAndroidChart-master文件夹
在file->new->Import Module->Source directory:C:\Users\ASUS\Desktop\MPAndroidChart-master

第二步 添加依赖后需要修改配置

// 项目级 build.gradle
plugins {
//    alias(libs.plugins.android.application) apply false // 使用版本目录(Version Catalogs)管理插件
    id 'com.android.application' version '7.4.2' apply false
}
// 主应用模块级 build.gradle
plugins {
//    alias(libs.plugins.android.application)  //默认注释掉
    id 'com.android.application' version '7.4.2'  //修改gradle版本为 7.5与7.4.2兼容
}

android {
    namespace 'com.example.ruhe_im_moudeo'
    compileSdk 34

    defaultConfig {
        applicationId "com.example.ruhe_im_moudeo"
        minSdk 26
        targetSdk 34
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
dependencies {

    implementation libs.appcompat
    implementation libs.material
    implementation libs.activity
    implementation libs.constraintlayout
    testImplementation libs.junit
    androidTestImplementation libs.ext.junit
    androidTestImplementation libs.espresso.core
    implementation project(':MPChartLib') //添加库文件
    implementation project(':MPChartExample')//添加模块文件
}

MPChartExample/build.gradle

//MPChartExample/build.gradle
apply plugin: 'com.android.application'

android {
    compileSdkVersion 34
    defaultConfig {
        applicationId "com.xxmassdeveloper.mpchartexample"
        minSdkVersion 26  //最小版本与主模块同步
        targetSdkVersion 34  //目标版本与主模块同步
        versionCode 57
        versionName '3.1.0'
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation "androidx.appcompat:appcompat:1.0.2"
    implementation 'com.google.android.material:material:1.0.0'
    implementation project(':MPChartLib')
}

MPChartLib/build.gradle

apply plugin: 'com.android.library'
//apply plugin: 'com.github.dcendents.android-maven'//这里会报错,注释掉

group='com.github.philjay'

android {
    namespace 'com.github.philjay'  //新版本需要添加命名
    compileSdkVersion 34
    buildToolsVersion '28.0.3'
    defaultConfig {
//        applicationId "com.github.philjay"//作为库文件不需要id
        minSdkVersion 26  //与主模块同步最小版本
        targetSdkVersion 34  //与主模块同步目标版本
        versionCode 3
        versionName '3.1.0'
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    testOptions {
        unitTests.returnDefaultValues = true // this prevents "not mocked" error
    }
}

dependencies {
    implementation 'androidx.annotation:annotation:1.0.0'
    testImplementation 'junit:junit:4.12'
}

task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    archiveClassifier = 'sources'  //改为archiveClassifier类
}

task javadoc(type: Javadoc) {
    options.charSet = 'UTF-8'
    failOnError  false
    source = android.sourceSets.main.java.sourceFiles
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    archiveClassifier = 'javadoc'  //改为archiveClassifier类
    from javadoc.destinationDir
}

artifacts {
    archives sourcesJar
    archives javadocJar
}

修改项目的settings.gradle

pluginManagement {
    repositories {
        google {
            content {
                includeGroupByRegex("com\\.android.*")
                includeGroupByRegex("com\\.google.*")
                includeGroupByRegex("androidx.*")
            }
        }
//        google()
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
//    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) // 更改优先使用 settings 中的仓库
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.name = "ruhe_im_moudeo"
include ':app'
include ':MPChartLib' //添加
include ':MPChartExample'  //添加

修改MPChartExample/AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<!--添加xmlns:tools="http://schemas.android.com/tools" -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.xxmassdeveloper.mpchartexample">

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--添加tools:replace="android:icon,android:theme移除重复声明-->
    <application
        android:allowBackup="false"
        android:hardwareAccelerated="true"
        android:icon="@drawable/ic_launcher"
        tools:replace="android:icon,android:theme"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <!--添加android:exported="true"
            tools:node="merge" 合并重复属性-->
        <activity
            android:name="com.xxmassdeveloper.mpchartexample.notimportant.MainActivity"
            android:label="@string/app_name"
            android:exported="true"
            tools:node="merge">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="LineChartActivity1" />
        <activity android:name="LineChartActivity2" />
        <activity android:name="LineChartTime" />
        <activity android:name="BarChartActivity" />
		<activity android:name="HorizontalBarChartActivity" />
        <activity android:name="HorizontalBarNegativeChartActivity" />
        <activity android:name="PieChartActivity" />
        <activity android:name="PiePolylineChartActivity" />
        <activity android:name="MultiLineChartActivity" />
        <activity android:name="BarChartActivityMultiDataset" />
        <activity android:name="DrawChartActivity" />
        <activity android:name="ScatterChartActivity" />
        <activity android:name="BubbleChartActivity" />
        <activity android:name=".fragments.SimpleChartDemo" />
        <activity android:name="ListViewBarChartActivity" />
        <activity android:name="ListViewMultiChartActivity" />
        <activity android:name="StackedBarActivity" />
        <activity android:name="AnotherBarActivity" />
        <activity android:name="InvertedLineChartActivity" />
        <activity android:name="CandleStickChartActivity" />
        <activity android:name="CubicLineChartActivity" />
        <activity android:name="RadarChartActivity" />
        <activity android:name="LineChartActivityColored" />
        <activity android:name="DynamicalAddingActivity" />
        <activity android:name="RealtimeLineChartActivity" />
        <activity android:name="CombinedChartActivity" />
        <activity android:name="PerformanceLineChart" />
        <activity android:name="BarChartActivitySinus" />
        <activity android:name="ScrollViewActivity" />
        <activity android:name="StackedBarActivityNegative" />
        <activity android:name="BarChartPositiveNegative" />
        <activity android:name="FilledLineActivity" />
        <activity android:name="HalfPieChartActivity" />
    </application>

</manifest>

file-> Invalidate Caches ->Invalidate and Restart 等待应用重启,等待重新构建

在activity_main.xml中添加测试
在MainActivity.java中添加引用测试有没有报错

整个过程使用腾讯元宝解答,一知半解

在这里插入图片描述

Android Studio中导入项目时可能会遇到一些常见问题,这些问题通常包括: 1. **项目文件格式不兼容**:如果你尝试导入的是旧版本的Gradle项目或者其他IDE创建的项目,可能需要先将其转换为Android Studio支持的格式。 2. **依赖库冲突**:如果项目中有多个模块并且它们依赖于不同的版本库,可能会导致构建失败。这时需要检查并管理好各个模块之间的依赖关系。 3. **许可证问题**:某些第三方库可能需要提供有效的许可证才能在项目中使用,确保所有依赖都有对应的许可证文件很重要。 4. **路径问题**:文件路径错误也可能引起问题,比如相对路径、外部存储位置等。确认项目的所有资源文件路径是否正确。 5. **环境配置错误**:如SDK路径设置不正确,JDK版本不匹配,可能导致编译或运行时出错。 6. **版本不兼容**:Android Studio本身的版本、ADT插件或项目的最低SDK版本与当前环境可能存在兼容性问题。 7. **Gradle同步问题**:初次打开或者长时间未打开的项目,可能会因为Gradle缓存的问题而无法同步。尝试清理 Gradle 缓存并重新同步。 面对这些问题,可以尝试检查项目设置、更新相关依赖、修复路径、调整环境变量,或者查阅官方文档以及Stack Overflow等社区的解决方案。如果问题依然存在,建议查看详细的错误日志,这对于定位问题非常有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值