Android Studio - невозможно открыть файл PNG
Я пытаюсь интегрировать 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-СДК-3,5\facebook-андроида-СДК-3,5\образцы\AplikaceBeta1.0.1Project\AplikaceBeta1.0.1\построить\рес\все\Debug\Drawable\com_facebook_profile_picture_blank_square.png Код ошибки: 42 Вывод: C:\Users\David\Desktop\facebook-андроид-СДК-3,5\facebook-андроид-СДК-3,5\образцы\AplikaceBeta1.0.1Project\AplikaceBeta1.0.1\построить\разобранных-расслоения\AplikaceBeta101ProjectLibrariesFacebookUnspecified.aar\Рез\вытяжка\com_facebook_profile_picture_blank_square.png ОШИБКА: Не удается открыть файл PNG
Невозможно открыть файл PNG... что?!
Код полностью такой же, как в "Начало работы с руководством для Android SDK для 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.
Ответы
Ответ 1
Используете ли вы Windows? Эта ошибка может произойти, если путь сгенерированного файла сборки превышает максимальную длину пути для Windows (не NTFS) символов 260. Убедитесь, что ваш путь к проекту не слишком длинный, используйте короткие имена. Дополнительная информация от MS:
Максимальное ограничение длины путиВ API Windows (с некоторыми исключениями, описанными в следующих параграфах) максимальная длина для пути - MAX_PATH, которая определена как 260 символов. Локальный путь структурирован в следующем порядке: буква диска, двоеточие, обратная косая черта, компоненты имени, разделенные обратными косыми чертами, и завершающий нулевой символ. Например, максимальный путь на диске D представляет собой "D:\some 256-символьная строка пути", где "" представляет невидимый завершающий нулевой символ для текущей кодовой страницы системы. (Символы < > используются здесь для визуальной ясности и не могут быть частью допустимой строки пути.)
Также см. обсуждение, почему существует ограничение Windows.
Ответ 2
Как сказал @for3st, это проблема длины пути в окнах.
Попробуйте сопоставить виртуальное вождение и сократить путь, используя это: http://www.ntwind.com/software/utilities/visual-subst.html