小编sha*_*ooo的帖子

排球 - 串行请求而不是并行?

我正在使用来自我的Android应用程序的volleymake HTTP请求.这是我正在使用的代码:

public class RequestPool {


    private static RequestPool mInstance;

    private RequestQueue mRequestQueue;

    private static Context mContext;

    private RequestPool(Context context) {

        mContext = context;
        mRequestQueue = getRequestQueue();


    }

    public static synchronized RequestPool getInstance(Context context) {

        if (mInstance == null) {
            mInstance = new RequestPool(context);
        }
        return mInstance;
    }

    public RequestQueue getRequestQueue() {
        if (mRequestQueue == null) {
            // getApplicationContext() is key, it keeps you from leaking the
            // Activity or BroadcastReceiver if someone passes one in.
            mRequestQueue …
Run Code Online (Sandbox Code Playgroud)

android android-volley

10
推荐指数
2
解决办法
6287
查看次数

是否可以检测用户是否安装并使用了Google健身应用?

我想在我的应用程序中添加步骤计数器.到现在为止,我正在Google fit测量用户步数.

我面临的问题是,并非所有设备都Google Fit安装了应用程序,即使是 - 并非所有用户都注册到应用程序服务(作为客户端).

所以期望的流程是:

  1. 检测是否Google fit安装了应用程序.
  2. 如果已安装,请检查用户是否已注册到Google fit应用程序.
  3. 如果安装并注册到Google fit应用程序,请检查用户帐户类型支持是否使用健身服务.(记录步骤等数据)
  4. 如果一切正常,请检查用户是否已确认"Google适合弹出窗口".

基本上我想如果用户使用健身应用(使用上述所有条件)来检查,如果一个失败,则它将使用STEPCOUNT传感器上设备(如果存在),如果传感器不存在,将使用其他传感器的实现这个目标.

以下是我用来连接Google Fit API的代码:

private void buildFitnessClient() {
    // Create the Google API Client
    mClient = new GoogleApiClient.Builder(getContext())
            .addApi(Fitness.HISTORY_API)
            .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ))
            .addConnectionCallbacks(
                    new GoogleApiClient.ConnectionCallbacks() {

                        @Override
                        public void onConnected(Bundle bundle) {
                            Log.i(TAG, "Connected!!!");
                            // Now you can make calls to the Fitness APIs.
                            // Put application specific code here.


                            new getFitnessTask().execute();
                        }


                        @Override
                        public void onConnectionSuspended(int …
Run Code Online (Sandbox Code Playgroud)

android google-fit

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

DrawerLayout在更新到Android 6.0.1后停止正常工作

几个小时前我已经将我的Android设备版本更新到6.0.1,从那时起我的应用程序崩溃了,当我离开活动时,它持有DrawerLayout并出现此错误:

12-16 16:08:04.122 9331-9331/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.my.app, PID: 9331
java.lang.IllegalArgumentException: DrawerLayout must be measured with MeasureSpec.EXACTLY.
at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:831)
at android.view.View.measure(View.java:18794)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.support.v7.internal.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:124)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2643)
at android.view.View.measure(View.java:18794)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2100)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1216)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1452)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
at …
Run Code Online (Sandbox Code Playgroud)

android android-6.0-marshmallow

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

Android build release transformClassesWithDexBuilderForRelease FAILED java.lang.ArrayIndexOutOfBoundsException

I've updated Firebase (from v15.0.2) and play-services-base (from v15.0.0) to the latest versions.

I'm using

implementation 'com.google.firebase:firebase-core:16.0.5'
implementation 'com.google.android.gms:play-services-base:16.0.1'
implementation 'com.google.firebase:firebase-config:16.1.0'
implementation "com.google.firebase:firebase-messaging:17.3.4"
implementation 'com.google.firebase:firebase-ads:17.1.1'


dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath 'com.google.gms:google-services:3.2.0'
}
Run Code Online (Sandbox Code Playgroud)

distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

After the update from version 15, I'm getting an java.lang.ArrayIndexOutOfBoundsException when building with proguard on release.

this is the exception:

error processing /Users/adminuser/Developer/tracking-android/build/intermediates/transforms/proguard/release/0.jar
java.lang.ArrayIndexOutOfBoundsException: 145
        at org.objectweb.asm.ClassReader.readUTF(ClassReader.java:2624)
        at org.objectweb.asm.ClassReader.readUTF8(ClassReader.java:2596)
        at org.objectweb.asm.ClassReader.readAnnotationValues(ClassReader.java:1962)
        at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1095)
        at org.objectweb.asm.ClassReader.accept(ClassReader.java:698)
        at org.objectweb.asm.ClassReader.accept(ClassReader.java:500)
        at com.android.builder.desugaring.DesugaringClassAnalyzer.analyze(DesugaringClassAnalyzer.java:144)
        at com.android.builder.desugaring.DesugaringClassAnalyzer.analyzeJar(DesugaringClassAnalyzer.java:92)
        at com.android.builder.desugaring.DesugaringClassAnalyzer.analyze(DesugaringClassAnalyzer.java:63)
        at com.android.build.gradle.internal.transforms.DesugarIncrementalTransformHelper.lambda$getInitalGraphData$4(DesugarIncrementalTransformHelper.java:150)
Run Code Online (Sandbox Code Playgroud)

full stacktrace …

android proguard android-studio android-gradle-plugin android-proguard

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

用lodash嵌套数组分组

我有一个小型的Web应用程序,该应用程序使用API​​调用来获取数据,响应是报告数组,每个报告都有唯一的ID,应用程序,类型和标题。

我想通过按应用程序分组然后按描述如下的类型将其映射到新对象中。

输入:

[
  {
    "id": "REPORT1",
    "application": "APP1",
    "type": "TYPE1",
    "title": ""
  },
  {
    "id": "REPORT2",
    "application": "APP1",
    "type": "TYPE1",
    "title": ""
  },
  {
    "id": "REPORT3",
    "application": "APP1",
    "type": "TYPE2",
    "title": ""
  },
  {
    "id": "REPORT4",
    "application": "APP2",
    "type": "TYPE3",
    "title": ""
  }
]
Run Code Online (Sandbox Code Playgroud)

所需的输出:

{
  "APP1": {
    "TYPE1": [
      {
        "id": "REPORT1",
        "application": "APP1",
        "type": "TYPE1",
        "title": ""
      },
      {
        "id": "REPORT2",
        "application": "APP1",
        "type": "TYPE1",
        "title": ""
      }
    ],
    "TYPE2": [
      {
        "id": "REPORT3",
        "application": "APP1",
        "type": …
Run Code Online (Sandbox Code Playgroud)

javascript

2
推荐指数
3
解决办法
1183
查看次数