我实施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).
谢谢!
更新
我尝试使用最新版本的播放服务后,我的问题现在解决了.
谢谢大家的帮助.
我在我的项目中使用改造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) 我是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 …我有一些 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 适配器,但我找不到跳过“级别”另一个字段的方法)。
我刚试过这个演示,但我找不到如何限制国家的结果.我还检查了com.google.android.gms.location.places.GeoDataApi中的getAutocompletePredictions,但我找不到任何实现限制国家/地区的文档.
我还在SO中搜索了一些问题; 显然它是JavaScript,需要添加一些"可选参数".那么如何在此请求中添加可选参数?
我有问题.我的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.但它也不起作用.
我开始使用 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)