小编Joe*_*son的帖子

RoomDatabase_Impl不存在

我试图实现一个房间数据库,我收到以下错误:

java.lang.RuntimeException: cannot find implementation for com.udacity.gradle.builditbigger.Database.HilarityUserDatabase. HilarityUserDatabase_Impl does not exist
                                                 at android.arch.persistence.room.Room.getGeneratedImplementation(Room.java:92)
Run Code Online (Sandbox Code Playgroud)

我尝试将相关的kotlin依赖项添加到我的gradle文件中(如下所示),但是当我这样做时,通常会生成任何问题的所有Databinding类现在都会在我的gradle控制台中生成错误.我有办法使用DataBinding库和Room Pesistence Library吗?

apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
...
dependencies{
    kapt "android.arch.persistence.room:compiler:1.0.0"
}
Run Code Online (Sandbox Code Playgroud)

android android-gradle-plugin android-architecture-components

7
推荐指数
2
解决办法
6483
查看次数

Firebase 存储中的多区域存储桶

我想设置一个在多个位置使用存储桶的社交媒体平台,以减少延迟并启用地理冗余。所以,我想要的是能够确定用户的位置,确定最近的数据中心,将数据保存在那里,然后将数据传输到服务器端的所有其他存储桶(通过谷歌云功能)。在Firebase 网站上,它说“云存储使用与默认 Google App Engine 应用程序相同的 Google 云存储存储桶”,但我找不到存储桶的默认存储类别。在谷歌云平台网站上,只提到了bucket有默认的类,以后可以修改。

所以我猜当我初始化我的 FirebaseStoage 对象时,我会通过调用:

FirebaseStorage.getInstance("gs://us")
Run Code Online (Sandbox Code Playgroud)

将存储桶位置设置为多区域美国选项?此外,当用户将文件上传到存储时,是否会自动选择最近的数据中心?

android firebase-storage

6
推荐指数
0
解决办法
254
查看次数

handleLifecycleEvent和markState之间的区别是什么(来自LifecycleRegistry类)

我无法辨别LifeCycleRegistry实例方法之间的区别,handleLifecycleEvent并且markState.根据文档handleLifecycleEvent设置当前状态并通知观察者.markState另一方面,将生命周期移动到给定状态,并将必要的事件发送给观察者.

因此,在两种方法中都会更改状态并通知观察者,以便他们可以触发相应的回调(基于我当前的理解).是否存在这两种方法不一样的情况?

android android-lifecycle

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

Android的简单矢量可绘制

我想简单地从创建矢量绘制svgInkscape中。根据Android Studio我的矢量路径太长

我不知道如何修复它才能正常工作。下面的代码以及drawable的外观如下。

   <?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="43.844998dp"
    android:height="43.591998dp"
    android:viewportWidth="43.844998"
    android:viewportHeight="43.591998">

    <path
        android:fillColor="@color/green_8"
        android:fillAlpha="0.78039216"
        android:strokeWidth="2.64575863"
        android:strokeLineJoin="round"
        android:pathData="M15.2489,209.971 C12.7531,209.916,10.5865,211.751,10.2745,214.283 L9.66091,219.266 L4.38994,219.255 C1.66777,219.249,-0.52854,221.436,-0.53455,224.158 C-0.540523,226.88,1.64606,229.076,4.36823,229.082 L8.45091,229.092 L7.75302,234.76 L4.38993,234.753 C1.66776,234.747,-0.52854,236.933,-0.53456,239.656 C-0.540533,242.378,1.64606,244.574,4.36823,244.58 L6.54302,244.586 L6.11669,248.048 C5.78398,250.75,7.69139,253.192,10.3932,253.525 C13.095,253.858,15.5379,251.951,15.8706,249.249 L16.4421,244.607 L22.0361,244.619 L21.6139,248.047 C21.2812,250.749,23.1883,253.191,25.8901,253.524 C28.5919,253.857,31.0348,251.95,31.3675,249.248 L31.9349,244.641 L38.3859,244.655 C41.1081,244.661,43.3044,242.474,43.3104,239.752 C43.3164,237.03,41.1298,234.834,38.4076,234.828 L33.1446,234.817 L33.8427,229.149 L38.3858,229.159 C41.108,229.165,43.3043,226.978,43.3103,224.256 C43.3163,221.534,41.1297,219.338,38.4075,219.332 L35.0524,219.325 L35.525,215.487 C35.8577,212.785,33.9506,210.343,31.2488,210.01 C28.547,209.677,26.1041,211.584,25.7714,214.286 L25.1536,219.303 L19.5596,219.291 L20.028,215.488 C20.3607,212.786,18.4536,210.344,15.7518,210.011 C15.5829,209.99,15.4151,209.978,15.2487,209.975 Z M18.35,229.112 L23.944,229.124 L23.2459,234.792 L17.6522,234.78 Z" />
</vector>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

svg android android-vectordrawable

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

使用MediaSessionCompat连接exoplayer

我想将我的exoplayer实现与媒体会话对象连接起来.我设置了一个SimpleExoPlayerView来显示视频.每次单击一个按钮,我都希望触发媒体会话回调.我只能在使用像耳机这样的东西时才能触发回调.应用程序中使用的代码如下所示

@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
public void setUp(LifecycleOwner lifecycleOwner){
    // Create a MediaSessionCompat
    Log.i("Hoe8", "lco setup called");
    mMediaSession = new MediaSessionCompat(activity, "this");

    // Enable callbacks from MediaButtons and TransportControls
    mMediaSession.setFlags(
            MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS |
                    MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS);

    // Do not let MediaButtons restart the player when the app is not visible
    mMediaSession.setMediaButtonReceiver(null);

    // Set an initial PlaybackState with ACTION_PLAY, so media buttons can start the player
    mStateBuilder = new PlaybackStateCompat.Builder()
            .setActions(
                    PlaybackStateCompat.ACTION_PLAY |
                            PlaybackStateCompat.ACTION_PLAY_PAUSE);
    mMediaSession.setPlaybackState(mStateBuilder.build());

    // MySessionCallback has methods that handle callbacks from a media controller
    mMediaSession.setCallback(new …
Run Code Online (Sandbox Code Playgroud)

android exoplayer android-mediasession

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