小编Jan*_*ski的帖子

Android Gradle keyAlias变量存储在单独的文件中

我正在开发依赖Jenkins CI的Android项目.所有签名密钥都存储在加密的gradle.properties文件中的单独存储库中.在项目存储库中,跟踪gradle.properties文件,并且(显然)不包含密钥.

以下是项目模块的示例build.gradle签名部分:

signingConfigs {
    release {
        keyAlias KEY_ALIAS
        storeFile file(KEYSTORE_PATH)
        storePassword KEYSTORE_PASSWORD
        keyPassword MOBILE_KEY_PASSWORD
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何在我的本地开发机器上存储这些键,并且能够在更改gradle.properties文件和修改构建文件的情况下构建项目?

android gradle jenkins android-studio android-gradle-plugin

5
推荐指数
1
解决办法
175
查看次数

带有数据绑定的 AndroidX SwipeRefreshLayout

我正在尝试使用 AndroidX 库实现滑动刷新功能:androidx.swiperrefreshlayout.widget.SwipeRefreshLayout

我的应用程序正在使用 Android 数据绑定,因此我想使用可观察字段来控制此小部件的状态。

过去我使用过AppCompat one - 它已被弃用。

以前,我可以通过以下方式访问字段:

<android.support.v4.widget.SwipeRefreshLayout
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:refreshing="@{viewModel.isLoading}">
    ...
    // My RecyclerView here
</android.support.v4.widget.SwipeRefreshLayout>
Run Code Online (Sandbox Code Playgroud)

但是,这似乎不再适用 - 与 AndroidX 等效。我错过了什么吗?或者是否有任何解决方案/解决方法来实现这一目标?

我的项目已经完全迁移到AndroidX,没有错误或依赖冲突。

data-binding android swiperefreshlayout android-databinding androidx

5
推荐指数
1
解决办法
4903
查看次数

Keras 2 fit_generator UserWarning:`steps_per_epoch`与Keras 1参数`samples_per_epoch`不同

我在Jupyter Notebook中使用Keras 2.0.8和Python 3内核.我的后端是TensorFlow 1.3,我正在Mac上开发.

每当我使用fit_generator()时,我都会收到以下警告:

/Users/username/anaconda/envs/tensorflow/lib/python3.6/site-packages/ipykernel/ main .py:5:UserWarning:Keras 2参数的语义与Keras steps_per_epoch1参数不同samples_per_epoch.steps_per_epoch是每个时代从发电机中抽取的批次数.基本上是steps_per_epoch = samples_per_epoch/batch_size.同样nb_val_samples- > validation_stepsval_samples- > steps参数已更改.相应地更新方法调用./Users/username/anaconda/envs/tensorflow/lib/python3.6/site-packages/ipykernel/ main .py:5:UserWarning:更新您fit_generator对Keras 2 API的调用:fit_generator(<keras.pre..., steps_per_epoch=60000, validation_data=<keras.pre..., epochs=1, validation_steps=10000)

下面是我的模型的代码(简单的MNIST线性分类器,但我对我使用的每个模型都收到此警告):

model = Sequential([
    Lambda(normalize_input, input_shape=(1, 28, 28)),
    Flatten(),
    Dense(10, activation='softmax')
])
model.compile(Adam(),
              loss='categorical_crossentropy',
              metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)

这是我的fit_generator()调用:

model.fit_generator(batches, 
                 steps_per_epoch=steps_per_epoch, 
                 nb_epoch=1, 
                 validation_data=test_batches, 
                 nb_val_samples=test_batches.n)
Run Code Online (Sandbox Code Playgroud)

我理解这个警告告诉我的是什么.在我的情况下,这不是问题.我怎么能摆脱它?

python neural-network keras jupyter-notebook keras-2

4
推荐指数
1
解决办法
5400
查看次数

带有监听器绑定的 Android DataBinding 表达式

我在应用程序中使用遵循MVP模式的 Android 数据绑定库。谈话中,有以下与事件处理程序一起使用的表达式示例:

\n\n
<Button android:onClick="@{isAdult ? handlers.adultClick : handlers.childClick}" \xe2\x80\xa6/>\n
Run Code Online (Sandbox Code Playgroud)\n\n

有没有什么方法可以不使用方法引用而是使用侦听器绑定来具有相同的功能(即根据条件不同的“onClick”事件)?或者也许我的方法完全错误,逻辑应该转移给演示者?

\n

mvp android android-databinding

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

Kotlin项目中使用的旧Java库中的空安全性

假设我在旧/遗留Java库中有特定代码:

public class JavaClass {
    private String notNullString;
    private String nullableString;
    private String unannotatedString;

    public JavaClass(@NotNull String notNullString,
                     @Nullable String nullableString,
                     String unannotatedString) {

        this.notNullString = notNullString;
        this.nullableString = nullableString;
        this.unannotatedString = unannotatedString;
    }

    @NotNull
    public String getNotNullString() {
        return notNullString;
    }

    @Nullable
    public String getNullableString() {
        return nullableString;
    }

    public String getUnannotatedString() {
        return unannotatedString;
    }
}
Run Code Online (Sandbox Code Playgroud)

前两个参数使用@NotNull和@Nullable注释正确注释(使用jetbrains.annotations).第三个(unnanotatedString)没有正确的注释.

当我在我的Kotlin代码中使用这个类并将所有构造函数参数设置为非null值时,一切都很好:

val foo = JavaClass("first string", "second string", "third string")

println("Value1: ${foo.notNullString.length}")
println("Value2: ${foo.nullableString?.length}")
println("Value3: ${foo.unannotatedString.length}")
Run Code Online (Sandbox Code Playgroud)

第一个值是非null,所以我可以在没有安全调用的情况下访问它.第二个值我需要使用安全调用(nullableString?.length),如果没有,我有一个编译时错误,到目前为止一直很好.在第三个值(unannotatedString)我可以在没有安全调用的情况下使用它,它编译得很好.

但是当我将第三个参数设置为"null"时,我没有得到编译时错误(不需要安全调用,只有运行时NullPointerException:

val …
Run Code Online (Sandbox Code Playgroud)

java annotations kotlin kotlin-interop kotlin-null-safety

3
推荐指数
2
解决办法
625
查看次数

使用 Kotlin 协程的多线程

我正在试验Kotlin 协程并有以下代码:

fun main(args: Array<String>) = runBlocking {
    val cores = Runtime.getRuntime().availableProcessors()
    println("number of cores: $cores")

    val jobs = List(10) {
        async(CommonPool) {
            delay(100)
            println("async #$it on thread ${Thread.currentThread().name}")
        }
    }
    jobs.forEach { it.join() }
}
Run Code Online (Sandbox Code Playgroud)

这是我的输出:

number of cores: 4
async number:0 on thread ForkJoinPool.commonPool-worker-2
async number:2 on thread ForkJoinPool.commonPool-worker-3
async number:3 on thread ForkJoinPool.commonPool-worker-3
async number:4 on thread ForkJoinPool.commonPool-worker-3
async number:5 on thread ForkJoinPool.commonPool-worker-3
async number:1 on thread ForkJoinPool.commonPool-worker-1
async number:7 on thread ForkJoinPool.commonPool-worker-3
async number:6 …
Run Code Online (Sandbox Code Playgroud)

multithreading jvm kotlin kotlinx.coroutines

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

房间数据库,给定日期的SELECT*FROM表

我正在Android项目中使用Room Persistence Library,并使用日期类型转换器存储日期:

object DateConverter {
    @TypeConverter
    @JvmStatic
    fun fromTimestamp(value: Long?): Date? = if (null == value) null else Date(value)

    @TypeConverter
    @JvmStatic
    fun dateToTimestamp(date: Date?): Long? = date?.time
}
Run Code Online (Sandbox Code Playgroud)

如何使用Room DAO在给定的一天从我的桌子中选择?

sqlite android android-room android-architecture-components

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

不推荐使用AppEventsLogger.deactivateApp(上下文上下文)

我正在使用Facebook SDK for Android v4.20.当我想调用AppEventsLogger.deactivateApp(getApplication()); 在我的Activity的onPause()中,它显示为已弃用.我正在使用Android Studio 2.3,应用程序最低SDK为16,目标为25,我使用构建工具v25.0.2.

它似乎与此SO问题类似,但解决方案不起作用,Android Studio仍然将此方法显示为已弃用.

在此输入图像描述

这警告可能是什么原因?

android facebook facebook-android-sdk android-facebook facebook-sdk-4.x

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