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

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

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

第一步 下载库文件.zip

MPAndroidChart:v3.1.0下载地址,https://github.***/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 '***.android.application' version '7.4.2' apply false
}
// 主应用模块级 build.gradle
plugins {
//    alias(libs.plugins.android.application)  //默认注释掉
    id '***.android.application' version '7.4.2'  //修改gradle版本为 7.5与7.4.2兼容
}

android {
    namespace '***.example.ruhe_im_moudeo'
    ***pileSdk 34

    defaultConfig {
        applicationId "***.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'
        }
    }
    ***pileOptions {
        source***patibility JavaVersion.VERSION_1_8
        target***patibility JavaVersion.VERSION_1_8
    }
}
dependencies {

    implementation libs.app***pat
    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: '***.android.application'

android {
    ***pileSdkVersion 34
    defaultConfig {
        applicationId "***.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.app***pat:app***pat:1.0.2"
    implementation '***.google.android.material:material:1.0.0'
    implementation project(':MPChartLib')
}

MPChartLib/build.gradle

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

group='***.github.philjay'

android {
    namespace '***.github.philjay'  //新版本需要添加命名
    ***pileSdkVersion 34
    buildToolsVersion '28.0.3'
    defaultConfig {
//        applicationId "***.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("***\\.android.*")
                includeGroupByRegex("***\\.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.***/tools" -->
<manifest xmlns:android="http://schemas.android.***/apk/res/android"
    xmlns:tools="http://schemas.android.***/tools"
    package="***.xxmassdeveloper.mpchartexample">

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--添加tools:replace="android:icon,android:theme移除重复声明-->
    <application
        android:allowBackup="false"
        android:hardwareA***elerated="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="***.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="***binedChartActivity" />
        <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中添加引用测试有没有报错

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

转载请说明出处内容投诉
CSS教程网 » Android Studio添加外部依赖出错问题解决

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买