我正在尝试在android studio中打开现有的android项目,并且gradle无法在没有错误的情况下构建应用程序
android studio继续抛出错误
@NgModule({
imports: [
BrowserModule,
AngularFireModule.initializeApp(constants.firebase),
AngularFireDatabaseModule])
build.gradle中的我的代码这有助于理解我的问题 我的依赖
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
db: AngularFireDatabase;
lists:FirebaseListObservable<any[]>
lists=this.db.list('/users');
请帮助解决问题
答案 0 :(得分:75)
将object ClientBuilder {
def build(client: Row, addr: Option[Iterable[Row]], addrType: Map[String,String]): ClientData = {
val addrList: Option[List[Address]] =
if (addr.isEmpty) None
else
Some(
addr.get.map( (addrRow: Row) =>
Address(
addrRow.getAs[String]("AddressLine1")
, addrRow.getAs[String]("AddressLine2")
, addrRow.getAs[String]("City")
, addrRow.getAs[String]("ProvinceCode")
, addrRow.getAs[String]("Country")
, addrType.get(addrRow.getAs[String]("AddressTypeCode")).getOrElse("")
)
).toList
)
val firstName: String = DFAsist.safeGeteString(client, "FirstName").getOrElse("")
val lastName: String = DFAsist.safeGeteString(client, "LastName").getOrElse("")
val title: String = DFAsist.safeGeteString(client, "Title") match {
case None => ""
case Some(s) if List("Mr.", "Ms.", "Mrs.").contains(s) => s
case _ => throw new IllegalArgumentException("Title is wrong!!!")
}
ClientData(title,firstName,lastName, addrList)
}
替换为compile
。
implementation
最近deprecated,由compile
或implementation
答案 1 :(得分:20)
您至少需要使用 Gradle 3.4 或更新才能使用implementation
。建议不要继续使用已弃用的compile
,因为这会导致构建时间变慢。有关更多详细信息,请参阅官方Android开发人员指南:
当您的模块配置实现依赖项时,它让Gradle知道模块不希望在编译时将依赖项泄漏给其他模块。也就是说,依赖性仅在运行时可用于其他模块。 使用此依赖项配置而不是api或compile可以显着缩短构建时间,因为它减少了构建系统需要重新编译的项目数量。例如,如果实现依赖项更改其API,则Gradle仅重新编译该依赖项以及直接依赖于它的模块。大多数应用和测试模块都应该使用此配置。
https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#new_configurations
更新: compile
将在2018年底前删除,因此请确保您现在只使用implementation
:
警告:配置&#39;编译&#39;已经过时,已被取代 &#39;实施&#39 ;.它将在2018年底删除
答案 2 :(得分:19)
在使用“实现”之前,请确保您的gradle版本为3。。。
在依赖项下打开项目级别的gradle文件
dependencies{
classpath 'com.android.tools.build:gradle:3.1.2'
}
打开gradle包装器属性使用分发网址作为
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
或最新版本
synk项目,希望这可以解决您的问题
答案 3 :(得分:4)
对我来说,我把我的依赖放在了错误的位置。
buildscript {
dependencies {
//Don't put dependencies here.
}
}
dependencies {
//Put them here
}
答案 4 :(得分:3)
更改apply plugin:'java' 应用插件:'java-library'
答案 5 :(得分:2)
将implementation
替换为classpath
。应该可以。
答案 6 :(得分:1)
您的代码
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
替换为
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
答案 7 :(得分:1)
如此处https://stackoverflow.com/a/50941562/2186220所述,请在使用“实现”时使用gradle插件版本3或更高版本。
此外,请使用google()
中的buildscript
存储库。
buildscript {
repositories {
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.2'
}
}
这些更改应该可以解决问题。
答案 8 :(得分:1)
我将implementation
从根级别的build.gradle移到了模块级别的build.gradle。它解决了这个问题。
答案 9 :(得分:1)
就我而言,这是因为我使用了 Implementation
而不是 implementation
。
答案 10 :(得分:0)
太荒谬了,但是我仍然想分享我的经验,以防有人陷入像我这样的情况。
请检查是否更改了以下内容:compileSdkVersion
-> implementationSdkVersion
答案 11 :(得分:0)
确保您将这些依赖项添加到android / app / build.gradle中,而不是android / build.gradle
答案 12 :(得分:0)
如果未定义实现,则说明您写的文件错误。在Unity 2019+上,正确的文件是main template grandle
,而不是其他一些文件。
答案 13 :(得分:0)
按照官方 docs 中的建议,您需要添加这些:
buildscript {
repositories {
// Gradle 4.1 and higher include support for Google's Maven repo using
// the google() method. And you need to include this repo to download
// Android Gradle plugin 3.0.0 or higher.
google()
...
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.0'
}
}
添加这些消除了我的错误。也使用实现而不是编译。