是否可以从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可以吗?如果没有,我怎么能实现这个目标?
我想发一个新JsonObjectRequest请求:
我想将带有此请求的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库.
此崩溃发生在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)
你有这种崩溃吗?你有一些解释吗?
例如,在Google Play中,列表中的每个项目在右上角都有一个3个垂直点,以显示弹出菜单.创建这3个点的最佳方法是什么?
十分感谢大家!
这是我的基础测试类:
@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) 由于有几周我的应用程序有时出现此异常:
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项目(用4个月前的Android Studio创建)导入我的Android Studio新笔记本电脑.因此,当我选择项目所在的文件夹时,弹出窗口显示"使用Gradle导入项目",其中包含不同的选项; 默认情况下,选择"使用本地gradle分发".
但我不知道如何在我的笔记本电脑上获得Gradle主页路径.
ENV:
我在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 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)
你以前见过这个错误吗?我不知道如何纠正这个错误......
非常感谢你们!
我正在将我的 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 ×9
gradle ×2
android-json ×1
android-xml ×1
button ×1
facebook ×1
firebase ×1
http-post ×1
junit4 ×1
macos ×1
robolectric ×1
shape ×1