没有这样的 属性:class 的 betaDistributionApkFilePath:java.lang.String
No such property: betaDistributionApkFilePath for class: java.lang.String
我在 gradle 的 crashlytics/fabric 设置中发现了一些小故障,这花了我 2 个小时的时间。
首先我做了他们在本指南中所说的一切:
https://fabric.io/kits/android/crashlytics/install
这里是一切都导致的代码片段:
先试试
dependencies {
...
compile('com.crashlytics.sdk.android:crashlytics:2.9.4@aar') {
transitive = true;
}
}
dependencies{}
中的每个库版本都使用 appname/app/build.gradle
中的 ext{}
块,所以在我们的例子中
ext {
crashlytics = '2.9.4@aar'
}
所以最后它会像这样只改变 implementation
在我看来应该存在,因为它将在 2018 年底被弃用。implementations
不要改变任何行为。
implementation("com.crashlytics.sdk.android:crashlytics:$crashlytics"){
transitive = true
}
但是如果你尝试构建这个你会得到:
No such property: betaDistributionApkFilePath for class: java.lang.String
哇。我不知道为什么.. 但让我们调查一下。我们将尝试不同的设置,因此忘记您在上面看到的一切。
第二次尝试
在 dependencies{}
中的 appname/app/build.gradle
中将我们的通道更改为此,因此我们没有 ext{}
版本
implementation("com.crashlytics.sdk.android:crashlytics:$rootProject.ext.crashlytics") {
transitive = true
}
现在在我们的根 gradle appname/build.gradle
buildscript {
ext.fabric_gradle = '2.9.4@aar'
repositories {
...
}
dependencies {
...
}
}
Build OK 你可以继续工作了。但是什么?应该是完全一样的...
第三次尝试
我不知道为什么,但在我们的第一次尝试中,您只是 CANT in appname/app/build.gradle
ext{}
块名称 crashlytics 变量,除了 crashlytics 之外,其他所有变量都必须如此 crashlytics_version 所以让我们先尝试工作状态。
ext {
crashlytics_version = '2.9.4@aar'
}
implementation("com.crashlytics.sdk.android:crashlytics:$crashlytics_version"){
transitive = true
}
构建 OK。魔法.
或者只是以正常的方式去做,不要尝试做聪明的事情....作为这个长期调查中的第一个代码块,它也完全可以正常工作:
compile('com.crashlytics.sdk.android:crashlytics:2.9.4@aar') {
transitive = true;
}
你只需 CANT 在 appname/app/build.gradle
ext{}
块中命名你的变量 crashlytics 它必须是其他一切除了 crashlytics 例如 crashlytics_version 所以:
ext {
crashlytics_version = '2.9.4@aar'
}
implementation("com.crashlytics.sdk.android:crashlytics:$crashlytics_version"){
transitive = true
}
构建 OK.
或者以正常方式进行:
compile('com.crashlytics.sdk.android:crashlytics:2.9.4@aar') {
transitive = true;
}
我在 gradle 的 crashlytics/fabric 设置中发现了一些小故障,这花了我 2 个小时的时间。
首先我做了他们在本指南中所说的一切: https://fabric.io/kits/android/crashlytics/install
这里是一切都导致的代码片段:
先试试
dependencies {
...
compile('com.crashlytics.sdk.android:crashlytics:2.9.4@aar') {
transitive = true;
}
}
dependencies{}
中的每个库版本都使用 appname/app/build.gradle
中的 ext{}
块,所以在我们的例子中
ext {
crashlytics = '2.9.4@aar'
}
所以最后它会像这样只改变 implementation
在我看来应该存在,因为它将在 2018 年底被弃用。implementations
不要改变任何行为。
implementation("com.crashlytics.sdk.android:crashlytics:$crashlytics"){
transitive = true
}
但是如果你尝试构建这个你会得到:
No such property: betaDistributionApkFilePath for class: java.lang.String
哇。我不知道为什么.. 但让我们调查一下。我们将尝试不同的设置,因此忘记您在上面看到的一切。
第二次尝试
在 dependencies{}
中的 appname/app/build.gradle
中将我们的通道更改为此,因此我们没有 ext{}
版本
implementation("com.crashlytics.sdk.android:crashlytics:$rootProject.ext.crashlytics") {
transitive = true
}
现在在我们的根 gradle appname/build.gradle
buildscript {
ext.fabric_gradle = '2.9.4@aar'
repositories {
...
}
dependencies {
...
}
}
Build OK 你可以继续工作了。但是什么?应该是完全一样的...
第三次尝试
我不知道为什么,但在我们的第一次尝试中,您只是 CANT in appname/app/build.gradle
ext{}
块名称 crashlytics 变量,除了 crashlytics 之外,其他所有变量都必须如此 crashlytics_version 所以让我们先尝试工作状态。
ext {
crashlytics_version = '2.9.4@aar'
}
implementation("com.crashlytics.sdk.android:crashlytics:$crashlytics_version"){
transitive = true
}
构建 OK。魔法.
或者只是以正常的方式去做,不要尝试做聪明的事情....作为这个长期调查中的第一个代码块,它也完全可以正常工作:
compile('com.crashlytics.sdk.android:crashlytics:2.9.4@aar') {
transitive = true;
}
你只需 CANT 在 appname/app/build.gradle
ext{}
块中命名你的变量 crashlytics 它必须是其他一切除了 crashlytics 例如 crashlytics_version 所以:
ext {
crashlytics_version = '2.9.4@aar'
}
implementation("com.crashlytics.sdk.android:crashlytics:$crashlytics_version"){
transitive = true
}
构建 OK.
或者以正常方式进行:
compile('com.crashlytics.sdk.android:crashlytics:2.9.4@aar') {
transitive = true;
}