Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android与Robolectric的测试:无法识别Facebook SDK_Android_Facebook - Fatal编程技术网

Android与Robolectric的测试:无法识别Facebook SDK

Android与Robolectric的测试:无法识别Facebook SDK,android,facebook,Android,Facebook,我们正试图在Android Studio中使用Robolectric测试框架来测试Facebook API。Facebook登录按钮可以工作,因此Facebook API可以工作。但是,以下测试失败: package com.airportapp.test.Models; import android.app.Activity; import org.junit.Assert; import org.junit.Before; import org.j

我们正试图在Android Studio中使用Robolectric测试框架来测试Facebook API。Facebook登录按钮可以工作,因此Facebook API可以工作。但是,以下测试失败:

    package com.airportapp.test.Models;

    import android.app.Activity;

    import org.junit.Assert;
    import org.junit.Before;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.robolectric.annotation.Config;
    import org.robolectric.Robolectric;
    import com.airportapp.test.MyRobolectricTestRunner;
    import com.airportapp.LoginActivity;

    import static org.junit.Assert.assertFalse;
    import static org.junit.Assert.assertTrue;

    @RunWith(MyRobolectricTestRunner.class)

    public class LoginActivityTest {
            @Before
            public void setup() {
            //do whatever is necessary before every test
            }

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

            Assert.assertNotNull(activity);
            }
    }
错误是当我们运行测试时,Android Studio找不到Android.support文件。您可以在此处看到错误:

出现的另一个错误是: android.view.InflateException:XML文件app/src/main/res/layout/activity_login.XML行#-1(抱歉,尚未实现):膨胀类com.facebook.widget.LoginButton时出错


所以Android Studio对facebook登录按钮也不满意:(但它是有效的……我们认为我们需要导入一些东西,但我们不知道放在哪里。

膨胀异常是因为Robolectric无法从Facebook SDK中找到资源。要解决这个问题,必须更新
project.properties
文件以指向Facebook SDK项目。通过添加以下命令来实现这一点:连接到it的ng线路:

android.library.reference.1={Path}
{Path}
应该是一个相对路径,从project.properties文件到包含Facebook SDK项目的
AndroidManifest.xml
的文件夹。在我的例子中,就是
。/../build/intermediates/exploded aar/com.Facebook.android/Facebook/3.21.0

请注意,这适用于所有包含Robolectric未找到的资源的Android库项目。进一步阅读:和。此外,可以找到有关
project.properties
的更多文档。请注意,在我的项目中,Robolectric测试位于Android应用程序项目本身。因此,您也可以尝试放置
>project.properties
文件与用于测试的
AndroidManifest.xml
文件位于同一目录中

至于你的第一个问题,我个人没有这方面的经验。但这似乎是因为Gradle在编译单元测试时找不到支持库。问题的答案应该会解决它