我正在尝试将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 \ explosion-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 \样本\ AplikaceBeta1.0.1Project \ AplikaceBeta1.0.1 \建立\水库\所有\调试\绘制\ com_facebook_profile_picture_blank_square.png 错误代码: 42 输出: C:\ Users \用户大卫\桌面\ Facebook的Android的SDK-3.5 \ Facebook的Android的SDK-3.5 \样本\ AplikaceBeta1.0.1Project \ AplikaceBeta1.0.1 \建立\爆炸,包\ AplikaceBeta101ProjectLibrariesFacebookUnspecified.aar \水库\绘制\ 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引起的。
答案 0 :(得分:58)
您使用的是Windows吗?如果生成的构建文件路径超过 260 字符的Windows(非NTFS )最大路径长度,则可能发生此错误。确保您的项目路径不是太长,也使用短名称。 More info from MS:
最大路径长度限制 在Windows API中(以下段落中讨论了一些例外),路径的最大长度为MAX_PATH,定义为260个字符。本地路径按以下顺序构成:驱动器号,冒号,反斜杠,由反斜杠分隔的名称组件以及终止空字符。例如,驱动器D上的最大路径是“D:\某个256个字符的路径字符串”,其中“”表示当前系统代码页的不可见的终止空字符。 (字符<>在此处用于视觉清晰度,不能是有效路径字符串的一部分。)
答案 1 :(得分:0)
正如@ for3st所说,它是Windows中的路径长度问题。 尝试使用以下方法映射虚拟驾驶并缩短路径:http://www.ntwind.com/software/utilities/visual-subst.html