小编ebe*_*nki的帖子

如何替换已弃用的 okhttp.RequestBody.create()

我尝试使用Retrofit 2OkHttp3将图像从 Android 应用程序上传到 Django 服务器。为此,我曾经RequestBody使用以下几行创建一个实例:

RequestBody requestImageFile =
                    // NOW this call is DEPRECATED
                    RequestBody.create(
                            MediaType.parse("image/*"),

                            // a File instance created via the path string to the image
                            imageFile
                    );
Run Code Online (Sandbox Code Playgroud)

我在下一个方法调用中使用了前一个实例作为参数:

// MultipartBody.Part is used to send also the actual file name
MultipartBody.Part image = MultipartBody.Part.createFormData("image", imageFile.getName(), requestImageFile);
Run Code Online (Sandbox Code Playgroud)

最后,我启动了 Retrofit 界面来完成剩下的工作:

// finally, execute the request
Call<ResponseBody> call = service.upload(image);
call.enqueue(new Callback<ResponseBody>() {
     @Override
     public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
            Log.v("Upload", "success"); …
Run Code Online (Sandbox Code Playgroud)

android image-upload okhttp retrofit2

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

Android 中的 Kotlin - 暂停房间中的功能

我正在查看https://github.com/android/architecture-samples/tree/dev-dagger/app/src/main/java/com/example/android/architecture/blueprints/todoapp/data/source上的示例/localdev-dagger分支和TasksLocalDataSource.kt文件中,它们具有以下方法:

override suspend fun getTasks(): Result<List<Task>> = withContext(ioDispatcher) {
        return@withContext try {
            Success(tasksDao.getTasks())
        } catch (e: Exception) {
            Error(e)
        }
}
Run Code Online (Sandbox Code Playgroud)

通过使用withContextIO 作为调度程序,他们希望协程在 IO 线程上运行。但是tasksDao.getTasks()方法里面的 Room 请求是一个挂起函数。在https://codelabs.developers.google.com/codelabs/kotlin-coroutines/#8的代码实验室中,他们说当它是一个挂起函数时负责在后台线程上Room运行请求(此处getTasks():)这里就是这种情况。那么,使用 a 是不是太多了withContext(ioDispatcher)?我不能像下面这样重写上面的方法吗?:

override suspend fun getTasks(): Result<List<Task>> {
         return Success(tasksDao.getTasks())
}
Run Code Online (Sandbox Code Playgroud)

android suspend kotlin android-room kotlin-coroutines

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

在 RecyclerView 中使用 ExoPlayer - 官方方式

ExoPlayer我想知道是否有可在 ? 中使用的工作示例RecyclerView?我发现的所有示例都是基于使用ExoPlayer一个视图 ( PlayerView),但没有适合初学者的示例演示如何在视图可以与可见屏幕连接或分离的环境ExoPlayer中使用。RecyclerView

为什么 ?为什么融入生态系统让我们不用重新发明轮子就可以使用它那么困难ExoPlayerAndroid Framework?可以公平地假设在列表中列出视频是一项常见要求,但没有任何指南或任何内容可以帮助 Android 应用程序开发人员。互联网上的“提示”和“解决方案”很少,在大多数情况下都是令人烦恼的。

我发现的唯一有用的来源是:

  1. github 讨论线程(我不使用它,因为每次我使用“非官方”解决方案时,我的应用程序都会因某种原因崩溃,因此我总是更喜欢 Google 提供的“官方”解决方案)
  2. 和这个博客条目(我无法使用它,因为我使用最新的 Android 架构组件,例如Pagingwith 、离线缓存等,这与该方法不太适合)。PagedListAdapterRoomLiveData

android exoplayer android-recyclerview

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

Tensorflow 2 - AttributeError:“_NestedVariant”对象没有属性“batch”

在《Hands on machine Learning with scikit-learn and tensorflow 2.0》一书的第 17 章中,他们使用 tf.data.Dataset 和 window() 方法将顺序数据集拆分为多个窗口:

n_steps = 100
window_length = n_steps + 1 # target = input shifted 1 character ahead
dataset = dataset.window(window_length, shift=1, drop_remainder=True)
Run Code Online (Sandbox Code Playgroud)

为了将顺序数据集分割成多个窗口,他们使用了以下方法:

dataset = dataset.flat_map(lambda window: window.batch(window_length))
Run Code Online (Sandbox Code Playgroud)

但是当我执行上面的那一行时,出现以下错误:

AttributeError                            Traceback (most recent call last)

<ipython-input-18-5b215fb4cb71> in <module>()
----> 1 dataset = dataset.flat_map(lambda window: window.batch(window_length))

10 frames

/usr/local/lib/python3.6/dist-packages/tensorflow/python/data/ops/dataset_ops.py in flat_map(self, map_func)
   1650       Dataset: A `Dataset`.
   1651     """
-> 1652     return FlatMapDataset(self, map_func)
   1653 
   1654   def interleave(self, …
Run Code Online (Sandbox Code Playgroud)

attributeerror tensorflow2.0 tf.data.dataset

5
推荐指数
0
解决办法
746
查看次数