Retrofit 2示例教程但GsonConverterFactory显示错误“无法解析符号”

时间:2015-10-23 14:09:33

标签: android gson retrofit android-library okhttp

我正在尝试关注Retrofit的2 tutorial,,但在代码的这一部分有GsonConverterFactory显示错误Cannot resolve symbol

public class ServiceGenerator {

    public static final String API_BASE_URL = "http://your.api-base.url";

    private static OkHttpClient httpClient = new OkHttpClient();
    private static Retrofit.Builder builder =
            new Retrofit.Builder()
                    .baseUrl(API_BASE_URL)
                    //THIS IS THE LINE WITH ERROR!!!!!!!!!!!!
                    .addConverterFactory(GsonConverterFactory.create());

    public static <S> S createService(Class<S> serviceClass) {
        Retrofit retrofit = builder.client(httpClient).build();
        return retrofit.create(serviceClass);
    }
}

之前我在gradle.build中添加了,我不确定是否应该添加GSON,因为他们说Retrofit 1.9有它但是没有提到Retrofit 2:

dependencies {  
    // Retrofit & OkHttp
    compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
}

7 个答案:

答案 0 :(得分:70)

修改

改造2现在稳定。使用

build.gradle

在您的compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2' 依赖关系部分

旧答案

使用Retrofit 2.0,您必须在build.gradle中声明要使用的转换工厂。添加

    String input = "馨俞";
    var messageAsBytes = Encoding.BigEndianUnicode.GetBytes(input);
    input = Encoding.BigEndianUnicode.GetString(messageAsBytes);

到您的gradle并再次同步

答案 1 :(得分:11)

来自该网站上的another article

  

默认情况下,Gson不附带改装2。之前,您不必担心任何集成转换器,您可以开箱即用Gson。此库更改会影响您的应用程序,您还需要将转换器导入为兄弟包。我们稍后会在这篇文章中触摸转换器,并向您展示如何为您的应用配置Gson或任何其他响应转换器。

因此,请将此添加到您的build.gradle

dependencies {  
    compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
}

答案 2 :(得分:4)

在我的案例中出现这种行为的原因是RunWorkerCompletedEventArgs依赖中的拼写错误。 build.gradle发布后我已更新:

beta4


compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'

和正确的依赖是

 compile 'com.squareup.retrofit:converter-gson:2.0.0-beta4'


另外值得注意的是, beta4 - 改装不适用于beta2 - gson

答案 3 :(得分:4)

更新了新版本的改造库

compile 'com.squareup.retrofit2:retrofit:2.0.2'

您必须包含依赖性:

compile 'com.squareup.retrofit2:converter-gson:2.0.2'

答案 4 :(得分:4)

现在有新版本

compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'

答案 5 :(得分:1)

我用过

- (void)applicationDidBecomeActive:(UIApplication *)application {
    [FBSDKAppEvents activateApp];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [[FBSDKApplicationDelegate sharedInstance] application:application
                             didFinishLaunchingWithOptions:launchOptions];
    return YES;
}

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                          openURL:url
                                                sourceApplication:sourceApplication
                                                       annotation:annotation];
}

使用相同版本代码的改造和gson

答案 6 :(得分:1)

compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'

使用此