小编Ste*_*hai的帖子

无法使用新的3.0版本的facebook sdk登录android

我看到有一个新版本的Facebook SDK(3.0)弃用了旧的Facebook类,并引入了一种使用Session类登录的新方法.

我使用新的登录API快速编写了一个简单的应用程序:

public class MainActivity extends Activity {

private Session mFacebookSession;

private StatusCallback fbStatusCallback = new StatusCallback() {
    @Override
    public void call(Session session, SessionState state, Exception exception) {
        Log.v("dbg", "state: " + state);
        Log.v("dbg", "session: " + session);
    }
};

public void bc(View view)
{
    mFacebookSession = Session.openActiveSession(this, true, fbStatusCallback);
}
//etc..
}
Run Code Online (Sandbox Code Playgroud)

回调应该被调用两次,首先是用于销毁实际的会话令牌,第二次用于获取新的访问令牌.当然,我的app id被设置为我的清单文件中的元数据等.

当我执行代码时,会出现Facebook登录对话框,我输入我的用户名和密码然后关闭.

但是,在我的日志中我只看到这个:

01-17 03:28:01.587: V/dbg(7002): state: OPENING
01-17 03:28:01.587: V/dbg(7002): session: {Session state:OPENING, token:{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[]}, appId:xxxxxxxxxxxxxxx}
Run Code Online (Sandbox Code Playgroud)

因此,如果我尝试调用mFacebookSession.getAccessToken(),我会得到一个空字符串(非null). …

android facebook facebook-android-sdk

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

解析和修改 xml 文件时保留现有缩进、空格等

是否有一些 Java 库可以帮助我解析 XML 文件,更改某些内容,然后将输出写入新的 XML 文件,该文件在缩进、空格方面基本上与第一个文件完全相同?

我尝试过 Jdom,但它似乎是 XMLOutputter 类更改了我原始 xml 的缩进。

基本上,如果我的输入 xml 文件如下所示:

<root><node>A</node></root>
Run Code Online (Sandbox Code Playgroud)

我想将 A 更改为 B,输出应如下所示:

<root><node>B</node></root>
Run Code Online (Sandbox Code Playgroud)

不喜欢

<root>
    <node>B</node>
</root>
Run Code Online (Sandbox Code Playgroud)

就像 Jdom 输出它一样。

这只是一个例子,但我的观点是:是否有一些 xml 解析库考虑了初始 xml 文件的格式?

java xml indentation xml-parsing

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

当x是uint8时,x | = 128的好奇gcc编译器代码

我最近偶然发现了一个我不理解的有趣的编译器代码.请使用以下代码:

unsigned char x;
...
x |= 127;
x |= 128;
Run Code Online (Sandbox Code Playgroud)

对于第一个语句,编译器生成:

or eax, 0x7f.
Run Code Online (Sandbox Code Playgroud)

但是,对于第二个陈述,它变为:

or eax, 0xffffff80
Run Code Online (Sandbox Code Playgroud)

似乎对于小于127的值,使用一个字节值,而在128个dword之后是优选的.

有没有人知道为什么会这样?我转载了这个gcc 6.2(我认为是最新的).

我试图在gcc邮件列表(gcc-bugs@gcc.gnu.org或gcc-help@gcc.gnu.org)上发帖,但我只是发送失败.

c assembly gcc cpu-registers compiler-optimization

2
推荐指数
1
解决办法
117
查看次数

(可能非常简单)initWithString似乎不起作用

我正在关注的objc教程使用以下初始化:

NSString* p = [[NSString alloc] initWithString:@"something"];
Run Code Online (Sandbox Code Playgroud)

但是,前一章中所述的相同教程可以将这些类型的结构分解为:

NSString* p = [NSString alloc];
[p initWithString: @"something"];
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试使用NSLog 显示p的值,则会发生异常:

main: Uncaught exception NSInternalInconsistencyException, reason: attempt to use uninitialised string
Run Code Online (Sandbox Code Playgroud)

这可能很容易,但我似乎无法找到答案.

objective-c nsstring

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