小编qua*_*n91的帖子

Google Api客户端有时在onConnected中为NULL

我实施GoogleApiClient如下:

 mGoogleApiClient = new GoogleApiClient.Builder(this)
                .enableAutoManage(this, 0 /* clientId */, this)
                .addApi(LocationServices.API)
                .addApi(Places.GEO_DATA_API)
                .addConnectionCallbacks(this)
                .build();
Run Code Online (Sandbox Code Playgroud)

但在onConnected方法中我检查mGoogleApiClient => value null.在这种情况下,我尝试重新构建googleApiClient但我收到错误:

  java.lang.IllegalStateException: Already managing a GoogleApiClient with id 0
Run Code Online (Sandbox Code Playgroud)

请帮助我理解为什么mGoogleApiClient有时候是NULL,因为它已连接:|.(注意.我检查了所有源代码,我从未将GoogleApiClient设置为NULL).

谢谢!

更新

我尝试使用最新版本的播放服务后,我的问题现在解决了.

谢谢大家的帮助.

android google-api-client

18
推荐指数
3
解决办法
1万
查看次数

Retrofit2 proguard删除参数

我在我的项目中使用改造2和使用proguard.

我的节目:

-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
   public *;
}    

# Begin twitter 4j.
-dontwarn twitter4j.**
-keep  class twitter4j.conf.PropertyConfigurationFactory
-keep class twitter4j.** { *; }
# End twitter 4j.


# Start androidsocialnetworks
-keep class com.androidsocialnetworks.lib.** { *; }
# End androidsocialnetworks.

# Google api
-keep class com.google.** { *;}
-keep interface com.google.** { *;}
-dontwarn com.google.**

-dontwarn sun.misc.Unsafe
-dontwarn com.google.common.collect.MinMaxPriorityQueue
-keepattributes *Annotation*,Signature
-keep class * extends com.google.api.client.json.GenericJson {
*; …
Run Code Online (Sandbox Code Playgroud)

android proguard android-proguard retrofit2

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

Dagger 2在AppCompatActivity中注入错误

我是Dagger的新手.目前我创建示例项目一些剪辑代码:

MyComponent.java

@PerActivity
@Component(modules = MyModule.class)
public interface MyComponent {
    void inject(TutorialActivity activity);
}
Run Code Online (Sandbox Code Playgroud)

MyModule.java

@Module
public class MyModule {
    @Provides
    Position providePosition() {
        return new Position();
    }
}
Run Code Online (Sandbox Code Playgroud)

PerActivity.java

@Scope
@Retention(RUNTIME)
public @interface PerActivity {}
Run Code Online (Sandbox Code Playgroud)

TutorialActivity.java

public class TutorialActivity extends AppCompatActivity{}
Run Code Online (Sandbox Code Playgroud)

编译项目时我收到错误:

Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> java.lang.IllegalArgumentException: expected one element but was: <android.support.v4.app.FragmentActivity, android.support.v4.app.TaskStackBuilder.SupportParentable>
Run Code Online (Sandbox Code Playgroud)

因此,如果我将TutorialActivity更改为:

public class TutorialActivity extends Activity{}

or even

public class TutorialActivity{} // Without extends
Run Code Online (Sandbox Code Playgroud)

然后它会正常工作.(我可以看到Dagger2生成的类).

请帮忙 !

谢谢.

UPDATE

我的项目结构:

  • common 模块.
  • app …

android dagger-2

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

使用 Gson 解析时跳过级别

我有一些 json 格式,如下所示:

{
"root": {
    "user": {
        "name":"Name",
        "age":99,
        "another_obj": {
            "f1":"abc",
            "f2":1
        }
    }
},
"result_code": 0
}
Run Code Online (Sandbox Code Playgroud)

我创建了一些模型,如下所示:

class User {
private String name;
private int age;
@SerializedName("detail")
private Detail
}

class Detail{
   // Define something.
}
Run Code Online (Sandbox Code Playgroud)

最后我创建了类名 UserWapper。

class UserWapper {
@SerializedName("root")
private User user;  
}
Run Code Online (Sandbox Code Playgroud)

解析 json:

String json = "STRING_JSON_ABOVE";
Gson gson = new Gson();
UserWrapper uw = gson.fromJson(json, UserWrapper.class);
Run Code Online (Sandbox Code Playgroud)

但目前我不想创建类包装器。因为我有很多很多课。如果创建 WrapperClass -> :|

我想做类似的事情:

User u = gson.fromJson(json, User.class).
Run Code Online (Sandbox Code Playgroud)

(注意:我无法从服务器更改格式数据 json。我还搜索了一些自定义 gson 适配器,但我找不到跳过“级别”另一个字段的方法)。

json gson

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

使用Google地方信息自动填充限制国家/地区的结果?

我刚试过这个演示,但我找不到如何限制国家的结果.我还检查了com.google.android.gms.location.places.GeoDataApi中的getAutocompletePredictions,但我找不到任何实现限制国家/地区的文档.

我还在SO中搜索了一些问题; 显然它是JavaScript,需要添加一些"可选参数".那么如何在此请求中添加可选参数?

android google-places-api

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

Android穿不显示通知

我有问题.我的android服装模拟器没有显示通知.这是我的移动代码:

private void notifyToWear() {
        NotificationCompat.WearableExtender wearableExtender = new NotificationCompat.WearableExtender()
                .setHintShowBackgroundOnly(true);

        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.ic_launcher)
                .setContentTitle("Request text")
                .setContentText("Speak something then your phone will search it.")
                .extend(wearableExtender);

        NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
        notificationManager.notify(0, notificationBuilder.build());
    }
Run Code Online (Sandbox Code Playgroud)

我在MainActivity中单击按钮时调用它.在我的手机中它显示通知,但在Android服装模拟器不显示.注意:+我已经连接android手机和android服装emualtor.我在Android Wear App中测试了Card示例.它正在发挥作用.

谢谢.

- 更新 - 代码执行点击按钮:

(findViewById(R.id.btn_request_text)).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MyActivity.this, "Call request", Toast.LENGTH_SHORT).show();
                notifyToWear();
            }
        });
Run Code Online (Sandbox Code Playgroud)

当我点击按钮Toast显示.

---更新---我还在Wear Sample中运行了ElizaChat和RecipeAssistant.但它也不起作用.

android wear-os

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

在 docker 中调试 rails 应用程序使用 Intellij/Rubymine

我开始使用 Docker 进行 Rails 开发。目前,我按照一些教程来设置开发环境。一切正常。(用于构建、运行)。但是现在,我想为 Rubymine 设置 Ruby Remote SDK,所以我在 docker 容器(ruby 容器;我安装了 SSH,因为它需要设置远程 SDK)。

这是 Dockerfile

FROM ruby:2.2.0
# Install package
RUN apt-get update -qq && apt-get install -y \
    build-essential \
    libpq-dev \
    nodejs \
    openssh-server

# Setting sshd
RUN mkdir /var/run/sshd
RUN echo 'root:root' | chpasswd
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config

# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i …
Run Code Online (Sandbox Code Playgroud)

ssh ruby-on-rails docker docker-compose

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