小编Ant*_*ony的帖子

Android Studio的调试窗口中"'此'不可用"

我在Android Studio的调试窗口中收到此消息.这不是静态方法,也不是类.这是什么意思?

在此输入图像描述

debugging android android-studio hugo-logging

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

如何使lodash _.replace在字符串中出现?

如何用另一个字符串替换字符串中每个字符串模式的出现?

var text = "azertyazerty";
_.replace(text,"az","qu")
Run Code Online (Sandbox Code Playgroud)

返回 quertyazerty

javascript string lodash

25
推荐指数
4
解决办法
4万
查看次数

我们怎样才能优化(cpu&ram)这个android自定义初始化动画?

我为Splash Screen活动开发了一个自定义动画:

=>这是一个动画,显示正在发生的事情:

在此输入图像描述

当然我的真实应用:

  • 是用不同的图片(fullhd)
  • 与GIF相比有点慢:60个中间屏幕为3s.

我的设计师为我提供了60个png文件.

=>举例说明:

在此输入图像描述

我的目标是:

  1. 从中央徽标(此处带有SO)开始,带有底部图片(Apple)
  2. 运行变形动画
  3. 像应用程序的主页一样在屏幕上结束

为了运行它,我有一个SpashScreenActivity的多层布局:

  • BackGround(不可见):homePage的布局(MainActivity)
  • MiddleGround:Apple的ImageView被Droid和bottomBar所取代
  • FrontGround:ImageView中的徽标,其标语为TextView

以下是SpashScreen布局的xml代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="bottom">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:visibility="invisible"
        android:orientation="vertical">

        <FrameLayout
            android:id="@+id/fl_logo_top_marge_hidden"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:visibility="invisible"
            android:background="@color/colorPrimary" />

        <include
            android:visibility="invisible"
            android:id="@+id/l_logo_activate_hidden"
            layout="@layout/part_logo_activate"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <FrameLayout
            android:visibility="invisible"
            android:id="@+id/fl_logo_bottom_marge_hidden"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:background="@color/colorPrimary" />

        <fr.millezimsolutions.app.splashanimation.SquareAspectWidthBasedImageView
            android:visibility="invisible"
            android:id="@+id/iv_home_hidden"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scaleType="fitXY"
            android:src="@drawable/p_log_android" />

        <FrameLayout
            android:visibility="invisible"
            android:id="@+id/fl_bar_hidden"
            android:layout_width="match_parent"
            android:layout_height="@dimen/start_degustation_bar_height"
            android:background="@color/colorAccent"
            android:gravity="bottom" />
    </LinearLayout>


    <LinearLayout
        android:id="@+id/fl_middle"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true"
        android:background="@color/colorPrimary"
        android:gravity="bottom"
        android:orientation="vertical">

        <fr.millezimsolutions.app.splashanimation.FitXCropTopImageView
            android:id="@+id/iv_slogan" …
Run Code Online (Sandbox Code Playgroud)

optimization animation android android-animation android-canvas

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

如何处理Firebase离线模式和数据推送?

使用Firebase时,建议使用push()命令管理数据列表.这非常好,它为列表中推送的数据提供了唯一且有序的ID.

但是,当Firebase脱机(goOffline或NetworkOffline)时,如果应用尝试在列表中推送数据,则不会触发完成侦听器,直到应用程序重新联机:因此在该行重新打开之前没有唯一ID .

1 /这是预期/正常行为吗?

2 /我没有在文档中看到(据我记得),push命令在脱机状态下的工作方式不同(或仅在onlinemode中).我在某处错过了一条线路吗?

3 /我的用例处理拥有关系的数据.这意味着我想在列表中创建一个对象(一种主类),然后重用这个主对象id(由完成侦听器提供)来构建主对象和所有其他相关对象之间的关系.我该如何处理这个离线状态?

代码示例:

    findViewById(R.id.button3).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            new Firebase(getString(R.string.firebase_url)).child("stack").push().setValue(counter++, new Firebase.CompletionListener() {
                @Override
                public void onComplete(FirebaseError firebaseError, Firebase firebase) {
                    ((TextView) findViewById(R.id.textView3)).setText(String.valueOf(counter) + " - " + firebase.toString());
                }

            });
        }
    });
Run Code Online (Sandbox Code Playgroud)

编辑

以下是添加数据的4种方法:

用Listener推送

   findViewById(R.id.button3).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            new Firebase(getString(R.string.firebase_url)).child("stack").push().setValue(counter++, new Firebase.CompletionListener() {
                @Override
                public void onComplete(FirebaseError firebaseError, Firebase firebase) {
                    ((TextView) findViewById(R.id.textView3)).setText(String.valueOf(counter) + " - " + firebase.toString());
                }

            });
        } …
Run Code Online (Sandbox Code Playgroud)

android firebase

9
推荐指数
2
解决办法
2972
查看次数

自我将Firebase应用程序升级到新控制台(仅限)后,Facebook登录不再起作用

我有一个具有Facebook和电子邮件登录功能的应用程序,因为我升级了Firebase控制台(仅限,sdk尚未更新).

Firebase 3.0之前的应用程序发布之前,但在控制台升级后,它不再能够使用Facebook签名/登录.

我做了什么:

1 - 升级Firebase控制台

由于Firebase和Facebook控制台更新,我还必须将Oauth回调放到Facebook应用程序中

2 -粘贴的火力地堡的Facebook的OAuth回调至Facebook的控制台(这是无效之前)` https://xxx.firebaseapp.com/__/auth/handler ``

例外情况:

firebase Auth侦听器触发Firebase错误:

提供的身份验证凭据无效.和Facebook:{ "providerErrorInfo":{ "代码":400, "消息": "从Facebook不成功debug_token响应:{\" 错误\ ":{\" 消息\ ":\"(#100)必须提供一个应用程序访问令牌或用户访问令牌是app \",\"类型\"的所有者或开发者:\"OAuthException \",\"code \":100,\"fbtrace_id \":\"DG4lLRJHFBS\"}}"}}

FirebaseError代码:

在FirebaseAndroidSdk的反编译代码中,错误对象是:

0 = {java.util.LinkedHashMap$LinkedEntry@22680}"code" - >"INVALID_CREDENTIALS"

1 = {java.util.LinkedHashMap$LinkedEntry@22681}"message" - >"提供的身份验证凭据无效."

2 = {java.util.LinkedHashMap$LinkedEntry@22682}"details" - >"{"providerErrorInfo":{"code":400,"message":"来自Facebook的不成功的debug_token响应:{\"error \":{ \"message \":\"(#100)您必须提供应用访问令牌或用户访问令牌,该令牌是应用的所有者或开发者,"\"键入\":\"OAuthException \",\"代码\ ":100,\" fbtrace_id\":\" BtB3JF2qmku\"}}"}}"

使用反编译代码:

private void makeAuthenticationRequest(String urlPath, Map<String, String> params, AuthResultHandler handler) {
    final AuthenticationManager.AuthAttempt attempt = this.newAuthAttempt(handler);
    this.makeRequest(urlPath, HttpRequestType.GET, params, Collections.emptyMap(), new RequestHandler() {
        public void onResult(Map<String, Object> result) …
Run Code Online (Sandbox Code Playgroud)

android facebook-graph-api facebook-authentication firebase firebase-authentication

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

如何确保在ElasticSearch Bonsai免费实例中使用Firebase FlashLight索引每个对象

感谢FlashLight https://github.com/firebase/flashlight的教程,这对使用Firebase进行全文搜索很容易.

但是,如果您保留免费的ES实例,则它在并发访问方面受到限制,并且当您启动节点应用程序时,您会在日志中看到以下消息:

无法索引firebase/xxx/-KHLhdwGplb3lHWjm8RS:错误:超出了并发请求限制.请考虑批量处理您的请求,或联系support@bonsai.io寻求帮助.

怎么解决这个?

concurrency node.js elasticsearch firebase

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

使用Android处理Firebase引用的最佳方式

当您在Android应用中处理Firebase数据(读取,写入...)时,您需要获取firebase引用,然后才能处理数据.

由于Firebase引用是一个JSON树,如果您指向树根,则可以始终访问子项,与深度无关.

问题:从内存和延迟角度来看,在代码中处理此引用的最佳方法是什么?

    • C1
      • C10
      • C11
    • C2
      • C21

1 /创建一个静态Firebase引用应用程序中的根.

MyApplication.getFirebaseRootRef().chid(C1).chid(C11).setValue(...); 
Run Code Online (Sandbox Code Playgroud)

2 /为孩子C11创建一个新的firebase ref

Firebase ref = new Firebase("https://your.firebaseio.com/C1/C11");
ref..setValue(...);
Run Code Online (Sandbox Code Playgroud)

3 /混合动力车

Firebase ref = new Firebase("https://your.firebaseio.com");
ref.child(C1).child(C11).setValue(...);
Run Code Online (Sandbox Code Playgroud)

4 /混合2

Firebase ref = new Firebase("https://your.firebaseio.com").child(C1).child(C11);
ref.setValue(...);
Run Code Online (Sandbox Code Playgroud)

性能有什么不同吗?

也许你可能有一些关于可读性和维护的建议?

java optimization android firebase

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

处理Proguard,MultiDex,测试和产品口味时,有什么好的策略?

我有一个引用~100K方法的应用程序,最小Sdk = 16

这是2个组装选项:

  • Proguard将这一系列方法缩减为仅44K方法
  • 使用Multi Dex

现在我有一些常见的用例:

  1. 在模拟器和设备上运行和调试
    • 它需要尽可能快
  2. 做测试(集成和UI)
    • 它需要运行(我有一些问题运行Espresso与MultiDex)
  3. 制作Prod APK
    • 它需要尽可能可靠和缩小

你有人对组装策略有一些建议吗?

3/Prod

  • 使用Proguard减少APK大小
  • 使用Proguard进行混淆
  • 尽量不要使用Multidex(可能会失败)

2 /测试

  • 使用minSdkVersion 21(我读到从21开始启用pre-dexing,节省时间)
  • ???

1 /调试

  • 使用minSdkVersion 21(我读到从21开始启用pre-dexing,节省时间)
  • ???

这是Gradle文件:

    productFlavors {
        dev {
            minSdkVersion 21
            multiDexEnabled ???
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        prod {
            // The actual minSdkVersion for the application.
            minSdkVersion ANDROID_BUILD_MIN_SDK_VERSION
            multiDexEnabled false
        }
    }
    defaultConfig {
        applicationId "xxxx"
        targetSdkVersion ANDROID_BUILD_TARGET_SDK_VERSION
        minSdkVersion ANDROID_BUILD_MIN_SDK_VERSION
        versionCode ANDROID_BUILD_VERSION_CODE
        versionName ANDROID_BUILD_APP_VERSION_NAME
    }

    buildTypes {
        release {
            debuggable false
            ext.enableCrashlytics = true
            renderscriptOptimLevel …
Run Code Online (Sandbox Code Playgroud)

android proguard gradle android-productflavors android-multidex

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

在 Firebase 中使用 equalTo("value","key") 吗?

这是以下数据结构:

{
  "list" : {
    "-K4YlfoWHZqPyWONv68Y" : {
      ".priority" : -1.449077948445E12,
      "date" : 1449077948445,
      "id" : "0",
      "name" : "Name_0"
    },
    "-K4YlfoWHZqPyWONv68Z" : {
      ".priority" : -1.449077948445E12,
      "date" : 1449077948445,
      "id" : "1",
      "name" : "Name_1"
    },
    "-K4YlfoWHZqPyWONv68_" : {
      ".priority" : -1.449077948445E12,
      "date" : 1449077948445,
      "id" : "0",
      "name" : "Name_2"
    },
    "-K4YlfoWHZqPyWONv68a" : {
      ".priority" : -1.449077948445E12,
      "date" : 1449077948445,
      "id" : "1",
      "name" : "Name_3"
    },
 ...
}
Run Code Online (Sandbox Code Playgroud)

我只需要获取 id 为“0”的项目;

以下是工作:

final Firebase ref = new …
Run Code Online (Sandbox Code Playgroud)

java firebase firebase-realtime-database

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

如何将 Timber 日志重定向到 Junit logcat

我正在使用带有 aDebugTree和 a 的木材ProductionTree。在正在运行的应用程序中一切都很好。我也成功地在我的 JUnit 测试实现中使用了 Timber,这很好(没有真正的好处,但它确实有效)。

但是,我想获取code under test要显示在 JUnit 日志中的日志。

我尝试构建一个JUnitTree并将木材日志重定向到println(…),并JUnitTree@Before功能中设置木材,但没有任何效果。来自社区的任何解决方案?

我的请求是否毫无意义,我在网络上没有找到任何有关此需求的信息(也许我使用了错误的关键字)。

junit android logcat kotlin timber-android

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