2

プロジェクト (プロジェクト build.gradle) 用に 3 つの build.gradle ファイルがあり、1 つはメイン モジュール (main build.gradle) 用、もう 1 つは別のサブモジュール (submodule build.gradle) 用です。

私のサブモジュールbuild.gradleは ADM (Amazon Device Messaging) を使用しています。したがって、次の依存関係が添付されています。

メインのbuild.gradleで提供された依存関係を使用すると機能しますが、サブモジュールに追加すると機能しません。オンの場合、以下が機能します

メインビルド.gradle

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    compile fileTree(dir: 'libs', exclude: 'amazon-device-messaging-1.0.1.jar', include: '*.jar')
    provided files('libs/amazon-device-messaging-1.0.1.jar')
}

私が試したこと

  1. サブモジュール build.gradleに以下を追加しました(まだ実行時例外が発生します)

    configurations {
        provided
    }
    sourceSets {
    main {
        compileClasspath += configurations.provided
    }
    test {
        compileClasspath += configurations.provided
        }
    }
    
    sourceSets.main.compileClasspath += configurations.provided
    
    dependencies {
    provided files('libs/amazon-device-messaging-1.0.1.jar')
    }
    

注:提供をprovidedlibsのようなカスタムに変更しましたが、それでも機能しません

  1. サブモジュールの build.gradleファイルに以下を追加しました(ランタイム例外は引き続き)

    android.libraryVariants.all { 
    variant -> variant.packageLibrary.exclude( 'ext_libs/amazon-device-messaging-1.0.1.jar' )
    }
    
  2. サブモジュールのbuild.gradleファイルに以下を追加しました(このフェラでコンパイルすることさえできません-ビルド中にも削除されると思います)

    android.libraryVariants.all { variant ->
        variant.outputs.each { output ->
            output.packageLibrary.exclude('libs/someLib.jar')
        }
    }
    
4

2 に答える 2

0

機能するのは、maven リポジトリに依存関係を追加し、提供された依存関係を使用してライブラリに含めることです

于 2015-05-01T16:12:49.233 に答える
0
  1. ADM jar を Maven ローカル リポジトリに追加します。

指示 :

            mvn install:install-file "-Dfile=amazon-device-messaging-1.0.1.jar" "-DgroupId=com.amazon.device.messaging" "-DartifactId=amazondevicemessaging" "-Dversion=1.0.1" "-Dpackaging=jar"
  1. プロジェクトの依存関係としてローカルの Maven リポジトリを含めます。

メインの Gradle ビルド スクリプトに「mavenLocal()」を追加します。

            allprojects {
            repositories {
                            mavenCentral()
                            mavenLocal()
             }
  1. Maven アーティファクトを ADM プロジェクトにリンクします。

行の下に ADMWrapperLib Gradle スクリプト (::) を追加します。

依存関係 { compile fileTree(dir: 'libs', include: '*.jar')

provided 'com.amazon.device.messaging:amazondevicemessaging:1.0.1'

}

于 2015-05-04T10:37:03.733 に答える