小编ant*_*ony的帖子

如何在AndroidManifest.xml文件中访问BuildConfig值?

是否可以从AndroidManifest.xml访问BuildConfig值?

在我的build.gradle文件中,我有:

defaultConfig {
    applicationId "com.compagny.product"
    minSdkVersion 16
    targetSdkVersion 21
    versionCode 1
    versionName "1.0"

    // Facebook app id
    buildConfigField "long", "FACEBOOK_APP_ID", FACEBOOK_APP_ID
}
Run Code Online (Sandbox Code Playgroud)

FACEBOOK_APP_ID 在我的gradle.properties文件中定义:

# Facebook identifier (app ID)
FACEBOOK_APP_ID=XXXXXXXXXX
Run Code Online (Sandbox Code Playgroud)

要在我的应用中使用Facebook连接,我必须将此行添加到我的AndroidManifest.xml:

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/applicationId"/> 
Run Code Online (Sandbox Code Playgroud)

我想用gradle中定义@string/applicationId的BuildConfig字段FACEBOOK_APP_ID替换,如下所示:

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="FACEBOOK_APP_ID"/> 
Run Code Online (Sandbox Code Playgroud)

使用BuildConfig可以吗?如果没有,我怎么能实现这个目标?

android android-xml android-facebook android-gradle-plugin

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

使用Volley发送带有JSON数据的POST请求

我想发一个新JsonObjectRequest请求:

  • 我想接收JSON数据(来自服务器的响应):好的
  • 我想将带有此请求的JSON格式数据发送到服务器

    JsonObjectRequest request = new JsonObjectRequest(
        Request.Method.POST, "myurl.com", null,
        new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                //...
            }
        },
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                //...
            }
        })
        {
            @Override
            protected Map<String,String> getParams() {
                // something to do here ??
                return params;
            }
    
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                // something to do here ??
                return params;
            }
        };
    
    Run Code Online (Sandbox Code Playgroud)

PS我也在我的项目中使用GSON库.

android http-post android-volley android-json

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

RuntimeException:ActivityThread.handleSleeping

此崩溃发生在Samsung Galaxy S8 +(Android 8.0)上:

java.lang.RuntimeException: 
  at android.app.ActivityThread.handleSleeping (ActivityThread.java:4403)
  at android.app.ActivityThread.-wrap23 (Unknown Source)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1893)
  at android.os.Handler.dispatchMessage (Handler.java:105)
  at android.os.Looper.loop (Looper.java:164)
  at android.app.ActivityThread.main (ActivityThread.java:6938)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)
Run Code Online (Sandbox Code Playgroud)

你有这种崩溃吗?你有一些解释吗?

android

29
推荐指数
1
解决办法
1642
查看次数

Android:如何创建3个垂直点?

例如,在Google Play中,列表中的每个项目在右上角都有一个3个垂直点,以显示弹出菜单.创建这3个点的最佳方法是什么?

十分感谢大家!

android shape button

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

Android:Robolectric不支持API级别1

这是我的基础测试类:

@RunWith(RobolectricTestRunner.class)
public class MainActivityTest {
  @Before
  public void setup() {
    //do whatever is necessary before every test
  }

  @Test
  public void testActivityFound() {
    Activity activity = Robolectric.buildActivity(MainActivity.class).create().get();

    Assert.assertNotNull(activity);
  }
}
Run Code Online (Sandbox Code Playgroud)

当我在Android Studio下使用终端窗口执行我的测试时,出现此错误:

java.lang.UnsupportedOperationException: Robolectric does not support API level 1, sorry!
at org.robolectric.SdkConfig.<init>(SdkConfig.java:24)
at org.robolectric.RobolectricTestRunner.pickSdkVersion(RobolectricTestRunner.java:320)
at org.robolectric.RobolectricTestRunner.getEnvironment(RobolectricTestRunner.java:296)
at org.robolectric.RobolectricTestRunner.access$300(RobolectricTestRunner.java:61)
at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:202)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:177)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
Run Code Online (Sandbox Code Playgroud)

Gradle信息:

compileSdkVersion 19
buildToolsVersion "19.0.1"

    minSdkVersion 14
    targetSdkVersion …
Run Code Online (Sandbox Code Playgroud)

android junit4 robolectric

20
推荐指数
2
解决办法
7941
查看次数

Android:有时会出现FacebookAuthorizationException

由于有几周我的应用程序有时出现此异常:

Non-fatal Exception: com.facebook.FacebookAuthorizationException: CONNECTION_FAILURE: TigonError(2): TigonLigerErrorDomain(2) AsyncSocketException: connect failed (immediately), type = Socket not open, errno = 101 (Network is unreachable)
       at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:218)
       at com.facebook.login.LoginManager$1.onActivityResult(LoginManager.java:173)
       at com.facebook.internal.CallbackManagerImpl.onActivityResult(CallbackManagerImpl.java:95)
       at com.myapp.util.connect.FacebookConnect.onActivityResult(FacebookConnect.java:338)
Run Code Online (Sandbox Code Playgroud)

Facebook SDK:4.27.0 Android版受影响:4.4.2和7(Crashlytics信息)

你有关于这个例外的想法吗?

非常感谢你

**更新

我在Facebook支持上写了一张票,经过几条消息后,最后一条是:

嗨,安东尼,感谢您提供更多细节.查看应用程序的数据,似乎没有为您的应用程序记录任何失败的API调用.这表示登录尝试在到达我们的服务器之前失败,并确认这确实是由于网络错误.

我同意这不是用户重试登录尝试的理想体验,但对于像这样的网络相关问题,这是最好的方法.我建议提示用户检查他们的设备连接并再次初始化登录流程.

从调试开始,这不太可能是由于与Retrofit的兼容性问题,尽管我不能肯定地排除它.受影响的用户更有可能只是经历了临时连接中断.

我将此标记为已关闭,因为Facebook SDK中似乎没有错误,但是如果您能够获得任何其他信息(例如,在设备上一致地重现错误的方法)有完整的互联网连接,请告诉我,我很乐意帮助再次调查.

android facebook

17
推荐指数
1
解决办法
2800
查看次数

Android Studio:从Gradle导入项目

我想将我的android项目(用4个月前的Android Studio创建)导入我的Android Studio新笔记本电脑.因此,当我选择项目所在的文件夹时,弹出窗口显示"使用Gradle导入项目",其中包含不同的选项; 默认情况下,选择"使用本地gradle分发".

但我不知道如何在我的笔记本电脑上获得Gradle主页路径.

ENV:

  • MACOSX
  • Android Studio v0.8.6(测试版)

macos gradle android-studio

14
推荐指数
2
解决办法
5万
查看次数

Android:找不到com.android.support:support-v4:23.2.1

我在gradle文件中添加了这个库:

compile 'com.appeaser.sublimepickerlibrary:sublimepickerlibrary:2.0.0'
Run Code Online (Sandbox Code Playgroud)

我已经有了这些依赖项:

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile "com.android.support:design:23.+"
compile 'com.android.support:support-v4:23.+'
compile 'com.android.support:support-v13:23.+'
compile 'com.android.support:appcompat-v7:23.+'
compile 'com.android.support:cardview-v7:23.+'
compile 'com.android.support:recyclerview-v7:23.+'
Run Code Online (Sandbox Code Playgroud)

既然,我已经添加了SublimePicker库,我添加了这个错误:

错误:找不到com.android.support:support-v4:23.2.1.要求:Android:app:unspecified

你能帮帮我们吗?

android gradle

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

Android:NetworkInfo.isConnected()上的NullPointerException与Firebase

有时,在不同的手机(Android 7)上会出现这种情况:

Fatal Exception: java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x4000010 (has extras) } in com.google.firebase.iid.zzae@3c68978
       at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:1178)
       at android.os.Handler.handleCallback(Handler.java:751)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6321)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.net.NetworkInfo.isConnected()' on a null object reference
       at com.google.firebase.iid.zzad.zzchr(Unknown Source)
       at com.google.firebase.iid.zzae.onReceive(Unknown Source)
       at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:1163)
       at android.os.Handler.handleCallback(Handler.java:751)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6321)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Run Code Online (Sandbox Code Playgroud)

你以前见过这个错误吗?我不知道如何纠正这个错误......

非常感谢你们!

android firebase firebase-cloud-messaging

14
推荐指数
1
解决办法
951
查看次数

ViewPager2:setOnTouchListener() 不调用

我正在将我的 ViewPager 迁移到新的 ViewPager2。不幸的是,对于这个新类,setOnTouchListener从未调用过。

mViewPager.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                LogUtils.LOGD("XXXX", "motionEvent.getAction()=" + motionEvent.getAction());
                ...
                return false;
            }
        });
Run Code Online (Sandbox Code Playgroud)

你知道我该如何解决吗?

非常感谢你们!

android android-viewpager android-viewpager2

14
推荐指数
1
解决办法
1346
查看次数