切換語言為:簡體

高版本gradle整合aspectj

  • 爱糖宝
  • 2024-08-12
  • 2085
  • 0
  • 0

之前低版本gradle整合aspectj可以成功,但是最近用gradle7.3以上去整合時一直報錯,提示找不到外掛。嘗試了很久,最終找到了解決方案,這裏記錄下。

由於android-aspectj 原作者不維護了,現在高版本的支援外掛是

'io.github.wurensen.android-aspectjx'

下面是新外掛具體的整合步驟:

  • 在project 工程目錄下的build.gradle中新增

classpath 'io.github.wurensen:gradle-android-plugin-aspectjx:3.3.2'
  • 在app的build.gradle中新增,注意一定要放在application外掛的下方,否則會報錯

apply plugin: 'io.github.wurensen.android-aspectjx'
  • 在library的build.gradle中新增(元件開發模式中,需要放在需要開啟aop的模組中)

implementation 'org.aspectj:aspectjrt:1.9.7'

下面是全部程式碼:

project build.gradle

buildscript {
    ext.kotlin_version = '1.7.10'
    repositories {
        mavenCentral()

        //jcenter()
    }
    dependencies {
        
        classpath 'com.android.tools.build:gradle:7.3.1'
       
        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.10'
       
        classpath 'io.github.wurensen:gradle-android-plugin-aspectjx:3.3.2'
    }
}

app  build.gradle

apply plugin: 'com.android.application'
apply plugin: 'io.github.wurensen.android-aspectjx'
apply plugin: 'kotlin-android'

android {
    
    compileSdkVersion 34
    buildToolsVersion "34.0.0"
    defaultConfig {
        targetSdkVersion 34
        minSdkVersion 31
       
    }
 
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    **** 
   
}
 dependencies {
     **** 
 }

library  build.gradle

plugins {
    id 'com.android.library'
    id 'org.jetbrains.kotlin.android'
}

android {
    namespace 'com.xiaomi.xms.ai.recorder'
    compileSdk 34

    defaultConfig {
        minSdk 31

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        consumerProguardFiles "consumer-rules.pro"
    }

   *****
}

dependencies {
    implementation 'androidx.core:core-ktx:1.13.1'
    implementation 'org.aspectj:aspectjrt:1.9.7'
}

0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.