小编Hec*_*tor的帖子

动态启用/禁用隐藏/取消隐藏Android ActionBar操作图标

我正在开发一个采用标准ActionBar的Android应用程序.
在某个屏幕上,我有一个有条件需要的过滤器图标,
具体取决于所显示数据的特征,例如,某些数据是可过滤的
.
我在动作栏上找不到任何方法,看起来可能是programmaticaly隐藏动作栏动作图标的候选人.如何启用/禁用操作栏操作图标?
或者
我如何隐藏/取消隐藏动作栏动作图标?

android android-actionbar

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

我可以忽略org.apache.kafka.common.errors.NotLeaderForPartitionExceptions吗?

我的Apache Kafka制作人(0.9.0.1)间歇地抛出一个

org.apache.kafka.common.errors.NotLeaderForPartitionException
Run Code Online (Sandbox Code Playgroud)

我执行Kafka发送的代码类似于此

final Future<RecordMetadata> futureRecordMetadata = KAFKA_PRODUCER.send(new ProducerRecord<String, String>(kafkaTopic, UUID.randomUUID().toString(), jsonMessage));

try {
    futureRecordMetadata.get();
} catch (final InterruptedException interruptedException) {
    interruptedException.printStackTrace();
    throw new RuntimeException("sendKafkaMessage(): Failed due to InterruptedException(): " + sourceTableName + " " + interruptedException.getMessage());
} catch (final ExecutionException executionException) {
    executionException.printStackTrace();
    throw new RuntimeException("sendKafkaMessage(): Failed due to ExecutionException(): " + sourceTableName + " " + executionException.getMessage());
}
Run Code Online (Sandbox Code Playgroud)

我赶上NotLeaderForPartitionExceptioncatch (final ExecutionException executionException) {}街区.

可以忽略这个特殊的例外吗?

我的Kafka邮件是否已成功发送?

exception-handling apache-kafka kafka-producer-api

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

为什么 Robolectric 4.4 打破了我的 MockK 测试

我当前的 Android 应用程序在其单元中使用 MockK

我所有的测试都按预期运行 testImplementation 'org.robolectric:robolectric:4.3'

但是,当我将版本增加到 testImplementation 'org.robolectric:robolectric:4.4'

我所有的测试都失败了,但有以下例外:-

java.lang.IllegalAccessError: tried to access class androidx.lifecycle.LiveData$ObserverWrapper from class androidx.lifecycle.LiveData$Subclass1

    at androidx.lifecycle.LiveData$Subclass1.<clinit>(Unknown Source)
    at sun.reflect.GeneratedSerializationConstructorAccessor7.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.objenesis.instantiator.sun.SunReflectionFactoryInstantiator.newInstance(SunReflectionFactoryInstantiator.java:48)
    at io.mockk.proxy.jvm.ObjenesisInstantiator.instanceViaObjenesis(ObjenesisInstantiator.kt:75)
    at io.mockk.proxy.jvm.ObjenesisInstantiator.instantiateViaProxy(ObjenesisInstantiator.kt:66)
    at io.mockk.proxy.jvm.ObjenesisInstantiator.instance(ObjenesisInstantiator.kt:29)
    at io.mockk.proxy.jvm.ProxyMaker.instantiate(ProxyMaker.kt:75)
    at io.mockk.proxy.jvm.ProxyMaker.proxy(ProxyMaker.kt:42)
    at io.mockk.impl.instantiation.JvmMockFactory.newProxy(JvmMockFactory.kt:34)
    at io.mockk.impl.instantiation.AbstractMockFactory.newProxy$default(AbstractMockFactory.kt:29)
    at io.mockk.impl.instantiation.AbstractMockFactory.temporaryMock(AbstractMockFactory.kt:127)
    at io.mockk.impl.recording.states.RecordingState$call$retValue$1.invoke(RecordingState.kt:72)
    at io.mockk.impl.instantiation.JvmAnyValueGenerator$anyValue$1.invoke(JvmAnyValueGenerator.kt:27)
    at io.mockk.impl.instantiation.AnyValueGenerator.anyValue(AnyValueGenerator.kt:27)
    at io.mockk.impl.instantiation.JvmAnyValueGenerator.anyValue(JvmAnyValueGenerator.kt:23)
    at io.mockk.impl.recording.states.RecordingState.call(RecordingState.kt:70)
    at io.mockk.impl.recording.CommonCallRecorder.call(CommonCallRecorder.kt:53)
    at io.mockk.impl.stub.MockKStub.handleInvocation(MockKStub.kt:263)
    at io.mockk.impl.instantiation.JvmMockFactoryHelper$mockHandler$1.invocation(JvmMockFactoryHelper.kt:25)
    at io.mockk.proxy.jvm.advice.Interceptor.call(Interceptor.kt:20)
    at io.mockk.proxy.jvm.advice.BaseAdvice.handle(BaseAdvice.kt:42)
    at io.mockk.proxy.jvm.advice.jvm.JvmMockKProxyInterceptor.interceptNoSuper(JvmMockKProxyInterceptor.java:45)
    at com.my.package.database.dao.ExplanationPublicationDAO$Subclass0.doesExplanationExist(Unknown Source)
    at com.my.package.my_details.MyRepositoryTest$doesExplanationExist$1.invoke(MyRepositoryTest.kt:67)
    at com.my.package.my_details.MyRepositoryTest$doesExplanationExist$1.invoke(MyRepositoryTest.kt:29)
    at io.mockk.impl.eval.RecordedBlockEvaluator$record$block$1.invoke(RecordedBlockEvaluator.kt:24)
    at io.mockk.impl.eval.RecordedBlockEvaluator$enhanceWithNPERethrow$1.invoke(RecordedBlockEvaluator.kt:74)
    at …
Run Code Online (Sandbox Code Playgroud)

android robolectric mockk

8
推荐指数
0
解决办法
721
查看次数

方向改变后转换闪烁

UPDATE

我已经在谷歌https://issuetracker.google.com/issues/63663775上打开了一个错误

我正在尝试makeSceneTransitionAnimation在我当前的Android应用程序中使用.

我有一个Source Activity,它包含一个Fragment,而Fragment内部是一个RecyclerView.

当我单击RecyclerViewI过渡到我的目标Activity中的图像时,其中包含一个正确显示具有可接受动画的图像的片段.

按后退按钮可正确反转动画.

以上在纵向和横向都可以正常工作.

当我在查看目标片段时更改方向然后按后退按钮时,会出现BLINKING问题.

还有其他问题,例如图像不能直接返回到其原始位置,而在较旧的设备上,我看到水平线像来自严重调谐的模拟电视的干扰.

它的BLINKING非常糟糕,设备屏幕完全黑色约500ms.

我已下载并部署了Google示例共享元素转换应用,它似乎具有相同的"功能".

我尝试了多种解决方案,但没有一种方法可以解决,例如这样.

是展示问题的一个.

添加了LOGCAT

07-21 12:57:18.097 1962-1967/com.incentive.yellowpages I/zygote64: Do partial code cache collection, code=30KB, data=21KB
07-21 12:57:18.099 1962-1967/com.incentive.yellowpages I/zygote64: After code cache collection, code=30KB, data=23KB
07-21 12:57:18.099 1962-1967/com.incentive.yellowpages I/zygote64: Increasing code cache capacity to 128KB
07-21 12:57:20.540 1962-2058/com.incentive.yellowpages D/OkHttp: --> GET http://www.spyur.am/en/home/search-1/?company_name=Happy http/1.1
07-21 12:57:20.688 1962-1967/com.incentive.yellowpages I/zygote64: Do partial code cache collection, code=61KB, …
Run Code Online (Sandbox Code Playgroud)

animation android android-animation android-transitions shared-element-transition

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

自动值包裹适配器能否应对另一个自动值类的Typed Set?

我调查auto-value及其扩展,也就是auto-value-parcelauto-value-parcel-adapter我的Android应用程序中.

我有这些模型类: -

@AutoValue
public abstract class Xenarchaeota implements Parcelable {

    @ParcelAdapter(AmoebaTypeAdapter.class)
    public abstract Set<Amoeba> amoebas();

    public static Builder builder() {
        return new AutoValue_Xenarchaeota.Builder();
    }

    @AutoValue.Builder
    public abstract static class Builder {

        public abstract Builder setAmoebas(Set<Amoeba> value);

        public abstract Xenarchaeota build();
    }
}
Run Code Online (Sandbox Code Playgroud)

@AutoValue
public abstract class Amoeba implements Parcelable {

    public abstract String surname();

    public static Builder builder() {
        return new AutoValue_Amoeba.Builder();
    }

    @AutoValue.Builder
    public abstract static class Builder {

        public abstract …
Run Code Online (Sandbox Code Playgroud)

android parcelable auto-value

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

如何删除可下载字体的过多行间距?

我正在调查当前Android应用程序中的可下载字体(和字体作为资源).

当我将字体放在values/font他们根据需要显示的文件夹中时.

当我使用可下载字体时,它们之间总是有额外的间距.

我必须android:lineSpacingMultiplier="0.5"在我的布局xml中使用以实现所需的间距.

我将字体应用于textview并允许它包装内容.

我担心使用android:lineSpacingMultiplier可能会"剪辑"一些字符.

我在做什么(或不做)创建这个文本间距问题?

这是我的布局xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:fontFamily="@font/lexie_readable_regular"
        android:padding="4dp"
        android:text="@string/testing"
        android:textColor="@color/daynight_textColor"
        android:textSize="18sp" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:fontFamily="@font/inknut_antiqua_light"
        android:padding="4dp"
        android:text="@string/testing"
        android:textColor="@color/daynight_textColor"
        android:textSize="18sp"
        android:textStyle="normal" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:fontFamily="@font/tiresias_infofont"
        android:padding="4dp"
        android:text="@string/testing"
        android:textColor="@color/daynight_textColor"
        android:textSize="18sp" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:fontFamily="@font/aphont_regular_q15c"
        android:padding="4dp"
        android:text="@string/testing"
        android:textColor="@color/daynight_textColor"
        android:textSize="18sp" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="CLICK ME"
        android:textColor="@color/daynight_textColor" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="250dp"
        android:layout_height="250dp"
        android:layout_gravity="center"
        android:src="@drawable/placeholder" />

    <LinearLayout …
Run Code Online (Sandbox Code Playgroud)

android android-fonts

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

如何在Android应用程序中组合RxJava Single和Completable Retrofit调用

我当前的Android应用程序使用RetrofitRxJava编排我的网络调用.

我已经将我的HTTP GET Single<Response<String>>和POST(s)建模为Completable.

我要求的电话顺序如下: -

顺序调用GET(1),GET(2),GET(3)

并行呼叫POST(1),POST(2)

当POST(1)和POST(2)都完成OK时,请调用GET(4).

我有部分解决方案.我编写了前三个GET的调用,然后是POST调用

我的代码类似于: -

Single.concat(getRequests())
                .subscribeOn(Schedulers.single())
                .doOnError(throwable -> Log.e(TAG, "Manage Totals Failed", throwable))
                .doFinally(new Action() {
                    @Override
                    public void run() throws Exception {
                        manageExecutions(combineExecutions());
                    }
                })
                .subscribe();

    /**
     * @return
     */
    private static Iterable<Single<Response<String>>> getRequests() {
        final API_CALL_GET[] apiCalls = API_CALL_GET.values();
        final List<Single<Response<String>>> requests = new ArrayList<>(apiCalls.length);

        for (final API_CALL_GET apiCall : apiCalls) {
            requests.add(apiCall.request());
        }

        return requests;
    }

public enum API_CALL_GET {

    GET_ONE { …
Run Code Online (Sandbox Code Playgroud)

android reactive-programming retrofit2 rx-java2

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

如何在 Android 上使用 citeproc-java

我正在调查de.undercouch:citeproc-java:2.0.0我当前的 Android 应用程序。

我无法确定ScriptEngine适用于 Android 的citeproc-java.

我的 Gradle 类似于:-

ext {
    compileSdkVersion = 30
    minSdkVersion = 26
    targetSdkVersion = 30
}

dependencies {

    implementation 'io.apisense:rhino-android:1.1.1'

    implementation 'de.undercouch:citeproc-java:2.0.0'
    implementation 'org.citationstyles:styles:20.11'
    implementation 'org.citationstyles:locales:20.11'

    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.2.1'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.10"
}
Run Code Online (Sandbox Code Playgroud)

Citeproc要求javax.script.ScriptEngineManager在 Android 平台上不可用,因此我已替换io.apisense:rhino-android:1.1.1

我现在正面临这个例外......

2020-11-19 10:02:22.325 4426-4426/com.google.android.gms.location.sample.basiclocationsample E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.google.android.gms.location.sample.basiclocationsample, PID: 4426
    java.lang.RuntimeException: Unable to start activity ComponentInfo{----}: java.lang.IllegalArgumentException: Could not make bibliography
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) …
Run Code Online (Sandbox Code Playgroud)

android rhino citeproc-js

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

如何在 Android Studio Bumblebee 中成功重启应用程序检查

我正在尝试这个版本的 Android Studio

Android Studio Bumblebee | 2021.1.1 Beta 4
Build #AI-211.7628.21.2111.7905991, built on November 11, 2021
Runtime version: 11.0.11+0-b60-7590822 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 10.15.7
GC: G1 Young Generation, G1 Old Generation
Memory: 4096M
Cores: 12
Registry: external.system.auto.import.disabled=true
Non-Bundled Plugins: org.jetbrains.kotlin (211-1.6.0-release-798-AS7442.40)
Run Code Online (Sandbox Code Playgroud)

我意识到它是测试版,但是我在使用应用程序检查工具时遇到困难。

一天开始时一切都很好,一旦我停止它并尝试重新启动它,它总是失败。

我尝试关闭并重新打开Android Studio,重新启动Android Studio,使缓存无效并重新启动Android Studio,清除文件系统缓存和本地历史记录并重新启动Android Studio

这些操作都无法解决错误状态

Could not launch inspector androidx.sqlite.inspection: Inspector with the given id androidx.sqlite.inspection already exists. It was launched by project MyProject
Run Code Online (Sandbox Code Playgroud)

我应该采取某种方法来解决这个问题吗?

android-studio

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

为什么升级到 AGP 8.3.0-alpha06 会导致构建失败并显示“参数‘提供者’未传递任何值”

我已经将我的 android studio 版本升级到

Android Studio Iguana | 2023.2.1 Canary 6
Build #AI-232.9921.47.2321.10875067, built on September 28, 2023
Runtime version: 17.0.8+0-17.0.8b1000.22-10799086 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 12.6.1
GC: G1 Young Generation, G1 Old Generation
Memory: 5120M
Cores: 12
Metal Rendering is ON
Registry:
    external.system.auto.import.disabled=true
    debugger.new.tool.window.layout=true
    ide.text.editor.with.preview.show.floating.toolbar=false
    ide.instant.shutdown=false
    ide.experimental.ui=true
    ide.images.show.chessboard=true

Non-Bundled Plugins:
    com.github.rmehri01.onenord (0.0.7)
    com.arcticicestudio.nord.jetbrains (0.13.0)
Run Code Online (Sandbox Code Playgroud)

和 AGP 版本8.3.0-alpha06

现在我的构建在这两行上失败了

import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties

val googleApiKey: String = gradleLocalProperties(rootDir).getProperty("GOOGLE_API_KEY")
val googleCrashReportingApiKey: String = gradleLocalProperties(rootDir).getProperty("GOOGLE_CRASH_REPORTING_API_KEY")


* What went …
Run Code Online (Sandbox Code Playgroud)

android gradle android-studio gradle-kotlin-dsl

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