小编ore*_*ion的帖子

Android Studio 4.0 布局检查器不工作

我在新的 Android Studio (4.0) 中的 Layout Inspector 中看不到任何更新。

我的应用程序面向 API 29,构建工具版本是buildToolsVersion '29.0.3'.

我正在运行模拟器Pixel_2_api_29和我的设备MI A3 OS version 10

这就是我所能看到的 布局检查器 android studio 4.0

android android-studio android-studio-4.0

49
推荐指数
4
解决办法
2万
查看次数

旋转动画android

我正在尝试做一个旋转图像动画.我需要像在进度条中那样围绕自己旋转图标,但我得到的是围绕圆圈旋转的图像.这是我的动画代码

<?xml version="1.0" encoding="utf-8"?>
<rotate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="360"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:duration="2500"
android:repeatCount="infinite"
android:repeatMode="restart"
/>
Run Code Online (Sandbox Code Playgroud)

我在哪里错了?谢谢

animation android

21
推荐指数
3
解决办法
7万
查看次数

杰克逊用Kotlin默认值反序列化失败

我正在使用Jackson来对Retrofit的Json响应进行反序列化.

我使用Jackson Module Kotlin库.

我有一些数据类,其中包含Java表示为基元的某些值的默认值,因此在没有空检查的情况下访问它时不会崩溃.

这一切都在调试模式下运行良好,但是当我在启用了pro guard的版本上运行时,默认值未设置且这些值为null,导致我的应用程序在从Java访问它们时会崩溃,假设基元.

我试图添加我在网上找到的所有专业守卫规则:)但没有成功.

如果有人有任何想法,请分享.

谢谢

数据类的示例

data class RideTask(@JsonProperty(RiderFrontendConsts.PARAM_LOCATION)
                    val location: UserVisibleLocation?,

                    @JsonProperty(RiderFrontendConsts.PARAM_ETA_TS)
                    val etaTime: Double?,

                    @JsonProperty(RiderFrontendConsts.PARAM_TIME_TO_COMPLETION)
                    val timeToCompletion: Double?,

                    @JsonProperty(RiderFrontendConsts.PARAM_ETA_DESCRIPTION)
                    val etaDescription: String?,

                    @JsonInclude(JsonInclude.Include.NON_NULL)
                    @JsonProperty(RiderFrontendConsts.PARAM_INTERNAL_ETA_TS)
                    val internalEta: Long? = 0,

                    @JsonProperty(RiderFrontendConsts.PARAM_ETA_DESCRIPTION_LIST)
                    val etaDescriptionList: List<String>?,

                    @JsonProperty(RiderFrontendConsts.PARAM_DESCRIPTION_PREFIX)
                    val descriptionPrefix: String?,

                    @JsonProperty(RiderFrontendConsts.PARAM_WALKING_DISTANCE_DESCRIPTION)
                    val walkingDistanceDescription: String?,

                    @JsonProperty(RiderFrontendConsts.PARAM_WALKING_DISTANCE_IN_METERS)
                    val walkingDistanceInMeters: Int? = 0)
    : Serializable
Run Code Online (Sandbox Code Playgroud)

改造和杰克逊初始化

private Retrofit getRetrofit() {
    LOGGER.debug("prepare retrofit");
    return new Retrofit.Builder()
            .client(getHttpClient(RiderFrontendConsts.DEFAULT_TIMEOUT_IN_MILLIS))
            .baseUrl(SettingsManager.getInstance(Application.getInstance()).getServerBaseUrl())
            .addConverterFactory(JacksonConverterFactory.create(getObjectMapper()))
            .callbackExecutor(Executors.newCachedThreadPool())
            .build();
}

private static ObjectMapper getObjectMapper() {
    LOGGER.debug("prepare …
Run Code Online (Sandbox Code Playgroud)

android proguard jackson kotlin

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

Android Studio 3.0上的com.android.dex.DexIndexOverflowException

我有一个用于Espresso测试的库,当我添加到我的项目时,我无法编译我的测试.

Gradle输出此错误

Caused by: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
    at com.android.dx.merge.DexMerger$8.updateIndex(DexMerger.java:565)
    at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:276)
    at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:574)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:166)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)
Run Code Online (Sandbox Code Playgroud)

这真的很奇怪,因为我已经在我的项目中启用了multiDex

我的项目build.gradle

defaultConfig {
            minSdkVersion 16
            targetSdkVersion 21
            versionName versionNameFromGitTagVia()
            versionCode versionCodeFromJenkins()
            multiDexEnabled true

            testInstrumentationRunner "app.test.general.InstrumentationRunner" ...
}
dependencies {
    ...
    androidTestImplementation project(':test-utils')
    ...
    implementation 'com.android.support:multidex:1.0.2'
}
Run Code Online (Sandbox Code Playgroud)

我的应用类

public class RiderApplication extends MultiDexApplication implements Application.ActivityLifecycleCallbacks,
        GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
  ....
}
Run Code Online (Sandbox Code Playgroud)

AndroidManifest

<application
    android:name=".RiderApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:theme="@style/MyAppTheme"
    tools:replace="android:theme,android:icon">
Run Code Online (Sandbox Code Playgroud)

删除库可以解决问题

有什么建议?

编辑 我尝试用几种方法解决它,我发现只有当我将库包含在内时才会发生这种情况

androidTestImplementation
Run Code Online (Sandbox Code Playgroud)

但是当作为常规使用时

implementation
Run Code Online (Sandbox Code Playgroud)

dex错误消失了

真奇怪 …

android android-multidex

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

RecyclerView重力

我有一个recylcler视图,但似乎没有实现setGravity方法.

我的列表是水平对齐的,但我需要它居中.我怎么做?

fragment_my_zone_item_controlled.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/dark_grey">

    <FrameLayout
        android:id="@+id/fragment_my_zone_item_controlled_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/fragment_my_zone_item_controlled_tabs"
        android:layout_marginBottom="12dp"
        android:layout_marginTop="12dp" />

    <android.support.v7.widget.RecyclerView
        android:id="@+id/fragment_my_zone_item_controlled_tabs"
        android:layout_width="match_parent"
        android:layout_height="44dp"
        android:background="@color/action_bar_color"
        android:scrollbars="none" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

这是它的外观

这就是它的外观,我需要它的中心

感谢你们

android android-recyclerview

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

Galaxy s3上的媒体播放器1004错误

我有一个视频视图,显示来自网络的内容.当我使用Android 4.2玩nexus 7时,它可以正常工作,但是当我在GS3上播放时,会返回错误1004 IO错误.有谁知道为什么会这样?

如果您需要代码,我会在这里发布.谢谢

android android-mediaplayer

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

永远不会调用OnInfoListener

我正在尝试收听我创建的媒体播放器的OnInfoListener,以便在缓冲开始和结束时获取.

由于某种原因,事件永远不会发生.

这是我的初始化代码

private void initPlayer(Surface s){
    mPlayer = new MediaPlayer();
    mPlayer.setSurface(s);


    mPlayer.setOnCompletionListener(this);
    mPlayer.setOnErrorListener(this);
    mPlayer.setOnInfoListener(this);
    mPlayer.setOnPreparedListener(this);
    mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

    try {
        mPlayer.setDataSource(file_url);
        mPlayer.prepare();
    } catch (IllegalArgumentException e) {
        OnError(PLAYER_ERRORS.player_not_loaded, e.getMessage() + "");
    } catch (SecurityException e) {
        OnError(PLAYER_ERRORS.player_not_loaded, e.getMessage() + "");
    } catch (IllegalStateException e) {
        OnError(PLAYER_ERRORS.player_not_loaded, e.getMessage() + "");
    } catch (IOException e) {
        OnError(PLAYER_ERRORS.no_connection, e.getMessage() + "");
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的倾听者

    @Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {


    if(what == MediaPlayer.MEDIA_INFO_BUFFERING_START)
    {
        OnEvent(PLAYER_EVENT.buffering_start);
    }
    else if(what == MediaPlayer.MEDIA_INFO_BUFFERING_END) …
Run Code Online (Sandbox Code Playgroud)

android

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

读取Realm对象的字段比java对象慢吗?

我正在考虑在生产应用程序中使用Realm.io作为我的ORM.

据我所知,RealmResults对象存储在BackendStore(磁盘)而不是RAM中,因为RealmResult只是保存在数据库中的真实对象的代理.

所以我的问题是,鉴于Java对象存储在RAM中,读取RealmObject的字段与从普通Java对象读取它的速度一样快.我的应用程序中有很多读数,我担心这会影响响应能力.

java android realm

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

暂停android DownloadManager

在我的应用程序中,我从服务器下载电影.其中一些非常大(4gb或更多).我试图将我自己的下载管理器作为一项服务实现,但它并没有放弃.在某些设备上,应用程序只是在没有任何通知的情况下崩溃,整体下载似乎太慢了.

所以,我想使用Android的默认DownloadManager,但我唯一的问题是我无法暂停/恢复它.

有没有办法实现呢?

android android-download-manager

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

用mock模拟私有财产会引发异常

我在 kotlin 中使用mockk进行测试。但我似乎无法覆盖间谍对象中的私有属性。

我有这个对象

private val driverMapSnapshotMap: MutableMap<Int, SnapshotImage> = mutableMapOf()
Run Code Online (Sandbox Code Playgroud)

在我监视使用的课程中

viewModel = spyk(DriverListViewModel(), recordPrivateCalls = true)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试用模拟值填充它时,我收到错误

every {
    viewModel getProperty "driverMapSnapshotMap"
} returns(mapOf(1 to mockkClass(SnapshotImage::class)))
Run Code Online (Sandbox Code Playgroud)

我得到的错误

io.mockk.MockKException: Missing calls inside every { ... } block.
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

kotlin mockk

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