Просто попасть в библиотеку загрузки изображений Glide для Android. В настоящее время работает с некоторым кодом здесь: https://github.com/bumptech/glide/issues/459Android, библиотека загрузки изображений Glide: NullPointerException, ProviderInfo
Мой полный проект здесь вы хотите посмотреть на него:
https://github.com/mhurwicz/glide02
Я получаю следующее исключение при запуске приложения в эмулятор в Android Studio:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object reference
Это ключ заявление в MainActivity:
new ShareTask(this).execute("http://thelink");
(thelink
на самом деле goo.gl/gEgYUd
- не мог оставить это выше, потому что stackoverflow не позволяет укорачивать URL-адреса.)
Вот мой код для класса ShareTask
class ShareTask extends AsyncTask<String, Void, File> {
private final Context context;
public ShareTask(Context context) {
this.context = context;
}
@Override protected File doInBackground(String... params) {
String url = params[0]; // should be easy to extend to share multiple images at once
try {
return Glide
.with(context)
.load(url)
.downloadOnly(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
.get() // needs to be called on background thread
;
} catch (Exception ex) {
Log.w("SHARE", "Sharing " + url + " failed", ex);
return null;
}
}
@Override protected void onPostExecute(File result) {
if (result == null) { return; }
Uri uri = FileProvider.getUriForFile(context, context.getPackageName(), result);
share(uri); // startActivity probably needs UI thread
}
private void share(Uri result) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/jpeg");
intent.putExtra(Intent.EXTRA_SUBJECT, "Shared image");
intent.putExtra(Intent.EXTRA_TEXT, "Look what I found!");
intent.putExtra(Intent.EXTRA_STREAM, result);
context.startActivity(Intent.createChooser(intent, "Share image"));
}
}
Использование отладки, я, кажется, может быть запущен в неприятности в get()
заявлении. Во-первых, ширина и высота - очень большие отрицательные числа. (См. Код, выделенный зеленым цветом ниже.) Затем оператор get()
возвращает null
. (См. Код, выделенный красным цветом ниже.)
Заранее благодарим за любую помощь, которую вы можете предоставить!
предоставьте больше журналов –