账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    android 多模块构建问题?
    42
    0

    报错信息

    
    Could not resolve project :crawlmodule.
    Required by:
        project :app
     > Unable to find a matching configuration of project :crawlmodule:
         - Configuration 'betaApiElements':
             - Required com.android.build.api.attributes.BuildTypeAttr 'debug' and found incompatible value 'beta'.
             - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found incompatible value 'Apk'.
             - Found com.android.build.gradle.internal.dependency.VariantAttr 'beta' but wasn't required.
             - Required org.gradle.api.attributes.Usage 'java-api' and found compatible value 'java-api'.
         - Configuration 'betaMetadataElements':
             - Required com.android.build.api.attributes.BuildTypeAttr 'debug' and found incompatible value 'beta'.
             - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found incompatible value 'Metadata'.
             - Found com.android.build.gradle.internal.dependency.VariantAttr 'beta' but wasn't required.
             - Required org.gradle.api.attributes.Usage 'java-api' but no value provided.
         - Configuration 'betaRuntimeElements':
             - Required com.android.build.api.attributes.BuildTypeAttr 'debug' and found incompatible value 'beta'.
             - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found incompatible value 'Apk'.
             - Found com.android.build.gradle.internal.dependency.VariantAttr 'beta' but wasn't required.
             - Required org.gradle.api.attributes.Usage 'java-api' and found incompatible value 'java-runtime'.
         - Configuration 'debugApiElements':
             - Required com.android.build.api.attributes.BuildTypeAttr 'debug' and found compatible value 'debug'.
             - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found incompatible value 'Apk'.
             - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.
             - Required org.gradle.api.attributes.Usage 'java-api' and found compatible value 'java-api'.
         - Configuration 'debugMetadataElements':
             - Required com.android.build.api.attributes.BuildTypeAttr 'debug' and found compatible value 'debug'.
             - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found incompatible value 'Metadata'.
             - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.
             - Required org.gradle.api.attributes.Usage 'java-api' but no value provided.
         - Configuration 'debugRuntimeElements':
             - Required com.android.build.api.attributes.BuildTypeAttr 'debug' and found compatible value 'debug'.
             - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found incompatible value 'Apk'.
             - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.
             - Required org.gradle.api.attributes.Usage 'java-api' and found incompatible value 'java-runtime'.
         - Configuration 'releaseApiElements':
             - Required com.android.build.api.attributes.BuildTypeAttr 'debug' and found incompatible value 'release'.
             - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found incompatible value 'Apk'.
             - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required.
             - Required org.gradle.api.attributes.Usage 'java-api' and found compatible value 'java-api'.
         - Configuration 'releaseMetadataElements':
             - Required com.android.build.api.attributes.BuildTypeAttr 'debug' and found incompatible value 'release'.
             - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found incompatible value 'Metadata'.
             - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required.
             - Required org.gradle.api.attributes.Usage 'java-api' but no value provided.
         - Configuration 'releaseRuntimeElements':
             - Required com.android.build.api.attributes.BuildTypeAttr 'debug' and found incompatible value 'release'.
             - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found incompatible value 'Apk'.
             - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required.
             - Required org.gradle.api.attributes.Usage 'java-api' and found incompatible value 'java-runtime'.

    app build.gradle

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 26
        defaultConfig {
            applicationId "touna.com.test"
            minSdkVersion 19
            targetSdkVersion 26
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            debug {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.support:appcompat-v7:26.1.0'
        implementation 'com.android.support.constraint:constraint-layout:1.0.2'
        implementation project(':crawlmodule')
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.1'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    }
    
    

    crawl module build.gradle

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 26
    
    
    
        defaultConfig {
            applicationId "touna.com.crawlmodule"
            minSdkVersion 19
            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'
            }
        }
    
    }
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
    
        implementation 'com.android.support:appcompat-v7:26.1.0'
        implementation 'com.android.support.constraint:constraint-layout:1.0.2'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.1'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    }
    

    安卓小白求问,还需要啥配置?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 慾朢失寵 普通会员 1楼

      在 Android 多模块构建中,可能会遇到以下几种常见问题:

      1. 依赖管理问题
      2. 循环依赖:不同模块之间直接或间接地相互依赖,导致构建失败。Android Gradle 插件并不支持模块间的循环依赖,需要重新设计模块结构以消除循环依赖。
      3. 版本冲突:多个模块依赖了同一库的不同版本,可能引发运行时错误或编译错误。解决办法是在根 build.gradle 文件中通过 ext 来统一管理所有库的版本。

      4. 构建顺序问题

      5. 某些模块的构建需要在其他模块之后进行,例如,library 模块被 app 模块依赖,而 library 模块没有先构建完成,会导致找不到对应的依赖。可以通过修改 settings.gradle 中模块引入的顺序或者在 app 模块的 build.gradle 中明确指定对 library 模块的依赖。

      6. 资源文件引用问题

      7. 在多模块项目中,一个模块试图访问另一个模块的资源(如字符串、图片等)时,如果没有正确配置,可能会出现找不到资源的问题。解决方案是使用 api 或者 implementation 以及 @string@drawable 等方式正确声明和引用资源。

      8. 构建产物合并问题

      9. 各个模块编译后的代码和资源如何有效、无冲突地合并到最终的 app 包中,需要注意各模块的混淆规则、R 文件等的合并处理。

      10. 多模块下的单元测试问题

      11. 如何在不同的模块下组织和执行单元测试,确保每个模块的功能独立性和完整性,这涉及到测试模块的创建与配置。

      12. 模块间通信问题

      13. 不同模块之间的交互设计,比如通过接口(AIDL)、事件总线(EventBus, LiveData)等方式实现跨模块通信。

      解决这些问题的关键在于合理规划模块划分,清晰定义模块间的依赖关系,并在各个模块的构建脚本中正确配置相关参数。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部