【发布时间】:2013-09-01 07:36:45
【问题描述】:
我正在尝试将 Facebook 集成到我的应用中,但是在 Android Studio 中运行它时,我得到了这个:
Gradle:任务“:AplikaceBeta1.0.1:mergeDebugResources”执行失败。 运行命令失败: C:\Users\David\AppData\Local\Android\android-studio\sdk\build-tools\android-4.2.2\aapt.exe s -i C:\Users\David\Desktop\facebook-android-sdk- 3.5\facebook-android-sdk-3.5\samples\AplikaceBeta1.0.1Project\AplikaceBeta1.0.1\build\exploded-bundles\AplikaceBeta101ProjectLibrariesFacebookUnspecified.aar\res\drawable\com_facebook_profile_picture_blank_square.png -o C:\Users\David\Desktop\facebook -android-sdk-3.5\facebook-android-sdk-3.5\samples\AplikaceBeta1.0.1Project\AplikaceBeta1.0.1\build\res\all\debug\drawable\com_facebook_profile_picture_blank_square.png 错误代码: 42 输出: C:\Users\David\Desktop\facebook-android-sdk-3.5\facebook-android-sdk-3.5\samples\AplikaceBeta1.0.1Project\AplikaceBeta1.0.1\build\exploded-bundles\AplikaceBeta101ProjectLibrariesFacebookUnspecified.aar\res\drawable\ com_facebook_profile_picture_blank_square.png 错误:无法打开 PNG 文件
无法打开 PNG 文件...什么?!
代码与“Getting Started with the Facebook SDK for Android (Android Studio)”指南中的代码完全相同。真的很简单,这是我的MainActivity.java:
package com.example.aplikacebeta101;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.widget.TextView;
import com.facebook.*;
import com.facebook.model.*;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// start Facebook Login
Session.openActiveSession(this, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
// make request to the /me API
Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
// callback after Graph API response with user object
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
TextView welcome = (TextView) findViewById(R.id.welcome);
welcome.setText("Hello " + user.getName() + "!");
}
}
});
}
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
}
有什么想法吗?我知道,Android Studio 仍然是 EAP,但我认为这不是 Android Studio 造成的。
【问题讨论】:
-
此错误与 Gradle 而不是 Android Studio 相关。当我想在从 Mac 复制的 Windows 上运行一个项目时,我就有了它。我真的不知道为什么,但是当我将同一个项目从 Windows 复制到 Windows 时,一切正常......
-
这可能与太长的路径有关...但我不确定
-
在 Windows Shell 中,如果您想使用超过 260 个字符的路径,您必须在它们前面加上 \\?\。这看起来我们可以很容易地通过稍微改变构建规则来解决。我会向 Android Studio 团队提及。
标签: android facebook android-studio