小编Nik*_*nki的帖子

改造需要一个字符串,但在第 1 行第 2 列路径 $ 处为 BEGIN_OBJECT

我正在尝试只获取字符串请求,但它给出了这样的错误

Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
Run Code Online (Sandbox Code Playgroud)

我的 API 输出是这样的:

{
    "status": true,
    "message": "Video uploaded successfully!",
    "data": {
        "video_name": "674631516178278_abc2.mp4",
        "video_thumbnail": "674631516178278_thumb0017.jpg"
    }
}
Run Code Online (Sandbox Code Playgroud)

响应代码:

        @Override
        public void onResponse(Call<String> call, Response<String> response) {
            try {
                if (response.body() != null)
                    Log.e("UploadResponse>>>", response.body());
                layoutUpload.setVisibility(View.GONE);
                if (file.exists()) {
                    file.delete();
                    thumb.delete();
                }
            } catch (Exception e) {
                e.printStackTrace();
                layoutUpload.setVisibility(View.GONE);
                if (file.exists()) {
                    file.delete();
                    thumb.delete();
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

android retrofit2

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

ExoPlayerImplInternal:渲染器错误无法播放视频 android

我经常在我所有的 4 个应用程序中使用 google Exoplayer2 库。但是我在播放视频时遇到了一些问题,它会忽略错误:

ExoPlayerImplInternal: Renderer error.                                                                                                                                
com.google.android.exoplayer2.ExoPlaybackException                                                                                                                                     
    at com.google.android.exoplayer2.audio.MediaCodecAudioRenderer.processOutputBuffer(MediaCodecAudioRenderer.java:382)                                                                                                                           
    at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:955)                                                                                                                                        
    at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:510)                                                                                                                                            
    at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:479)                                                                                                                                           
    at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:308)                                                                                                                                            
    at android.os.Handler.dispatchMessage(Handler.java:101)                                                                                                                                         
    at android.os.Looper.loop(Looper.java:164)                                                                                                                                         
    at android.os.HandlerThread.run(HandlerThread.java:65)                                                                                                                                         
Caused by: com.google.android.exoplayer2.audio.AudioTrack$InitializationException: AudioTrack init failed: 0, Config(48000, 12, 92288)                                                                                                                                             
    at com.google.android.exoplayer2.audio.AudioTrack.checkAudioTrackInitialized(AudioTrack.java:1358)                                                                                                                                             
    at com.google.android.exoplayer2.audio.AudioTrack.initialize(AudioTrack.java:648)                                                                                                                                             
    at com.google.android.exoplayer2.audio.AudioTrack.handleBuffer(AudioTrack.java:722)                                                                                                                                             
    at com.google.android.exoplayer2.audio.MediaCodecAudioRenderer.processOutputBuffer(MediaCodecAudioRenderer.java:376)
Run Code Online (Sandbox Code Playgroud)

如果你现在想要我的 exoplayer 初始化代码,请看这个

android exoplayer2.x

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

带有 Retrofit Gson 库的 Android Studio Gradle 3.6.1 中的错误

Android Studio 升级到 3.6.1 后出现了一个 bug。应用程序不断崩溃onResponse()的改造调用。可能是问题,Converter Gson但我不知道确切。我刚刚将 gradle(项目级别)降级到 3.5.3 并且它现在工作得很好。

例外是:

getVideoList$1.onResponse (VideoListActivity.java:17)
retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:37)
android.os.Handler.handleCallback (Handler.java:883)
android.os.Handler.dispatchMessage (Handler.java:100)
android.os.Looper.loop (Looper.java:214)
android.app.ActivityThread.main (ActivityThread.java:7682)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:516)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:950)
Run Code Online (Sandbox Code Playgroud)

我正在使用改造库:

implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
Run Code Online (Sandbox Code Playgroud)

好吧,这些库在Gradle3.5.3中运行良好,但在 3.6.1 中崩溃了,所以,我不知道确切的错误,但存在并询问此问题以寻求帮助。如果有小伙伴知道是什么问题,那么我们需要报告它 Retrofit 或 Android Studio。

android android-studio

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

为 Retrofit Kotlin 协程创建自定义网络监听器

我正在使用 retofit 服务而不使用回调。所以,它可能与 Kotlin Coroutine 一起使用suspend fun。我参考了很多博客、媒体和教程。scope嗯,使用带有线程的协程很容易获得响应IO and Main

因此,在参考了一些示例之后,我考虑执行如下代码:

改造服务接口RetrofitInterfaces.kt

interface RetrofitInterfaces {
    @FormUrlEncoded
    @POST("get-videos-pagination")
    suspend fun getTemplates(@Field("app_name") app_name: String,
                             @Field("sort_by") sortBy: String,
                             @Field("video_loaded_ids") loadedIds: String): Response<Model_Video_List>
}
Run Code Online (Sandbox Code Playgroud)

其中Model_Video_List.ktclass 是我的响应数据类。

改造建造者RetrofitClient.kt

object RetrofitClient {
    fun makeRetrofitService(mContext: Context): RetrofitInterfaces {
    val gson = GsonBuilder().setLenient().create()
    return Retrofit.Builder()
            .baseUrl(AppPreferences.getBaseUrl(mContext) + "/api/v3/")
            .addConverterFactory(GsonConverterFactory.create(gson))
            .build().create(RetrofitInterfaces::class.java)
}
}
Run Code Online (Sandbox Code Playgroud)

这里我使用Gsontoserialisedeserialise Json data

现在有什么问题以及问题从哪里开始以获得我正在使用的错误响应ResultWrapper.kt

class ResultWrapper { …
Run Code Online (Sandbox Code Playgroud)

android kotlin-coroutines

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