相关疑难解决方法(0)

使用gradle查找依赖树

是否有可能使用gradle来生成依赖于什么的树?

我有一个项目,并希望找出所有的依赖项,所以我可以通过前向声明等来修剪它.

gradle

474
推荐指数
15
解决办法
36万
查看次数

AAR可以包含传递依赖吗?

所以,现在我有一个图书馆项目,说项目public static取决于像这样的图书馆public static.

现在,它public static有一个maven buildstep,可以生成AAR并将其推送到公共场所.

所以现在让我说我有项目B,我们会称之为public static.Bar是一个Android应用程序,public static依赖于public static.

好吧,我有.但是,当我从该调用中调用public static函数时,我收到以下消息:public staticpublic staticpublic static

java.lang.NoClassDefFoundError: com.squareup.okhttp.OkUrlFactory
            at com.foo.sdk.utils.OkHttpStack.<init>(OkHttpStack.java:15)
Run Code Online (Sandbox Code Playgroud)

那么,这样的事情可能吗?或者public static需要手动依赖public static以及任何其他依赖项public static

android gradle maven android-studio android-gradle-plugin

61
推荐指数
1
解决办法
2万
查看次数

未解决的参考:build.gradle.kts 中的 compileKotlin

通过 build.gradle 构建 Kotlin 项目成功:

compileKotlin {
    kotlinOptions.jvmTarget = JavaVersion.VERSION_1_8
}
compileTestKotlin {
    kotlinOptions.jvmTarget = JavaVersion.VERSION_1_8
}
Run Code Online (Sandbox Code Playgroud)

好的。

但我需要更改为build.gradle.kts

 plugins {
    kotlin("jvm") version "1.2.10"
    id("application")
}

group = "com.myproject"
version = "1.0-SNAPSHOT"

application {
    mainClassName = "MainKt"
}

java.sourceCompatibility = JavaVersion.VERSION_1_8

repositories {
    mavenCentral()
    jcenter()
}

val kotlinVer = "1.2.10"

dependencies {
    compile(kotlin(module = "stdlib-jre8", version = kotlinVer))
    implementation("com.google.code.gson:gson:2.7")
    implementation("com.squareup.okhttp3:logging-interceptor:3.8.0")
    implementation("com.squareup.retrofit2:converter-gson:2.1.0")
    implementation("com.squareup.retrofit2:retrofit:2.5.0")
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")

}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
Run Code Online (Sandbox Code Playgroud)

现在我得到错误:

Line …
Run Code Online (Sandbox Code Playgroud)

gradle kotlin gradle-kotlin-dsl

23
推荐指数
3
解决办法
1万
查看次数

使用 Kapt 和 Gradle 中的实现声明依赖项时,它们之间有什么区别?

kapt在声明依赖项时,Gradle和之间有什么区别implementation,以及何时应该使用其中一个而不是另一个?

例子:

//Room Components
implementation "androidx.room:room-runtime:$rootProject.roomVersion"
kapt "androidx.room:room-compiler:$rootProject.roomVersion"

// dagger
implementation "com.google.dagger:dagger:$rootProject.ext.daggerVersion"
kapt "com.google.dagger:dagger-android processor:$rootProject.ext.daggerVersion"
Run Code Online (Sandbox Code Playgroud)

android gradle kotlin android-studio android-gradle-plugin

14
推荐指数
1
解决办法
4193
查看次数

无法在对象上找到参数 [project ':model'] 的方法 api()

错误:(36, 0) 无法在 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型的对象上找到参数 [project ':model'] 的方法 api()

请帮我。

这是我的 build.gradle 文件。

apply plugin: 'com.android.application'
//apply plugin: 'io.fabric'

android {
compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
 applicationId "com.manafzar.mytaxi.driver"
 minSdkVersion 16
 targetSdkVersion 26
 versionCode 23
 versionName "2.0.3"
 multiDexEnabled true
 vectorDrawables.useSupportLibrary = true
 javaCompileOptions {
    annotationProcessorOptions {
    arguments = [eventBusIndex: 
   'com.manafzar.mytaxi.driver.DriverEventBusIndex']
  }
 }
}
buildTypes {
 release {
   minifyEnabled false
   proguardFiles getDefaultProguardFile('proguard-android.txt'), 
      'proguard-rules.pro'
  }
}
dataBinding {
  enabled = true
  }
}

dependencies {
   annotationProcessor 'org.greenrobot:eventbus-annotation-processor:3.0.1'
   api project(':model')
   api 'com.google.maps.android:android-maps-utils:0.5'
   api …
Run Code Online (Sandbox Code Playgroud)

android gradle

10
推荐指数
2
解决办法
4644
查看次数

android gradle 4.0编译依赖项已弃用 - 新的api配置可见性如何工作?

如果我们看一下gradle构建工具,我们会注意到不推荐使用编译配置依赖关系来支持api实现.看到这里

所以我对使用api的依赖可见性提出了质疑.想象一下,我们在名为app的模块中设置了以下内容:

dependencies {
    api 'commons-httpclient:commons-httpclient:3.1'
    implementation 'org.apache.commons:commons-lang3:3.5'
}
Run Code Online (Sandbox Code Playgroud)

所以我收集的是org.apache.com:commons-lang3:3.5只能在模块本身中使用.但是commons-httpclient:commons-httpclient:3.1依赖将在模块之外可用,这实际意味着什么?这是否意味着如果我将我的app模块放入一个库中,依赖关系将对任何使用该库的人可用, (不管怎么说,总是这样吗?

这是Android文档关于api配置的说法:

api compile在编译时模块可以使用依赖项,并且在编译时和运行时它也可供模块的使用者使用.此配置的行为与compile(现在已弃用)类似,您通常只应在库模块中使用它.应用程序模块应使用实现,除非您要将其API公开给单独的测试模块.compileOnly提供

android gradle-plugin

7
推荐指数
0
解决办法
5692
查看次数