我正在尝试加载存储在应用程序文件夹上的图像当我打开活动时,我从logcat收到了这个错误:
1-20 01:30:40.125 14331-14331/mx.eusaga。af W/ImageView:无法打开内容:content://mx.eusaga.af.fileprovider/imagenes/1-db384fa8-f28b-4595-abbf-d45d38fd4036.jpgjava.io。FileNotFoundException:android.os.Parcel上没有此类文件或目录。openFileDescriptor(本机方法)在android.os.ParcelFileDescriptors.openInternal(ParcelFileDescriptor.java:253)在android.os.parcelFileDescrcator.open(ParcelFile描述符.java:199)在andro.support.v4.content.FileProvider.openFile(FileProviders.java:545)在Android.content.ContentProvider.openAssetFile(ContentProvider.java:1322)在Android尔.content.content.ContentProvider.openTypedAssetFile(ContentProvider.java:1502)在android.content.ContentProvider.openTypedAssetFile(ContentProviler.java:1568)在android.content.Contents Provider$Transport.OpenType DassetFileFile(Contents Provider.java:391)在Android.content.ContententResolver.OpenTypleDassetFilesDescriptor(ContentResolder.java:1080)在android.;content.content.ContentRessolverandroid.widget.ImageView.resolveUri(ImageView.java:768)上的android.content.ContentResolver.openInputStream(ContentResolver.java:646)和android.Wicket.ImageViewer.setImageURI(ImageView.java:429)上的android.support.v7.widget.AppCompatImageView.setImageURI(AppCompatImage:124)和mx.eusaga.af.Adapter.ImagenAdapter.onBindViewHolder(ImagenAdapter.java:51)上的mxandroid上的mx.eusaga.af.Adapter.ImagenAdapter.onBindViewHolder(ImagenAdapter.java:30)和android上的support.v7.widget.RecyclerView$Adapter.OnBindView Holder(RecyclerView.java:6482)和android下的support.v7.widget.RecyclerView$Adapter。android上的bindViewHolder(ReciplerView.java:6515)和Android下的support.v7.wicket.RecycerView$RecyclerViewHolderByDeadline(Recycler.java:5458)android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerViewer.java:5724)在android.Supports.v7.widget.RecyclerView$Recycller.getViewForPosition(RecycerView.java:5563)在android.support.v7.Wicket.Recycler在android.下一个(LinearLayoutManager.java:2229)在android.support.v7.widget.GridLayoutManager.layoutChunk(GridLayotManager.java:556)在android.Supports.v7.widget.LinearLayoutManager.Layout.fill(LinearLayutManager.java:1516)在android.support.v7.widget.LinearLayotManager.onLayoutChildren(LinearLayoutManager.java:608)在android.support.v7.Wicket.GridlayoutManagersandroid.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3693)在android.Supports.v7.widget.RecyclerView.onMeasure(RecycerView.java:3109)在android.view.view.view.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)在andro.Widgets.LinearLayout.measure.MeasuranceChildBeforeYout(LinearLayout.java:1436)在android.widget.LinearLayout.measureVertical(LinearLayot.java:722)和android.Wicket.LinearLayout.onMeasure(Linearlayot.java:613)在android.view.view.measure中的android.view.view.ViewGroup.MeasereChildWithMargins(ViewGroup.java:5535)在android.widget.FrameLayout.OnMeasurement中的android.support.v7.Widgets.ContentFrameLayet.onMeasureandroid.widget.LinearLayout.measureChildBeforRelayout(linearlayot.java:1436)的android.view.view.ViewGroup.MeasureHildWithMargins(ViewGroup.java:5535)的android.widget.LinearLayout.view.view.measure(view.java:17547)的android.view.ViewGroup.MeasureChild(ViewGroup.java:5535)android.widget.FrameLayout.onMeasure的android.view.ViewGroup.MeasureHildWithMargins(ViewGroup.java:5535)和android.Wicket.FrameLayout.onMeasure(FrameLayot.java:436)的android.view.view.view.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)在android.widget.LinearLayout的android.LinearLayout.LinearLayout.java:1436和android.LinealLayout.的LinearLayeout.measure.Measerevertical(LinearLayout.java:722)在android.widget.LinearLayout.onMeasure(L
我用来获取图像的代码如下:
private Uri obtenerImagen(String archivo) {
File Directorio = new File(context.getFilesDir() + "/imagenes/");
Directorio.mkdirs();
File imagen = new File(Directorio,archivo + ".jpg");
Uri uri = FileProvider.getUriForFile(context,"mx.eusaga.af.fileprovider",imagen);
return uri;
}
这是我的文件提供者:
<!-- FileProvider -->
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="mx.eusaga.af.fileprovider"
android:exported="false"
android:grantUriPermissions="true" >
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
这些是我的文件路径:
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path name="imagenes" path="imagenes/"/>
</paths>
文件夹图像和文件1-db384fa8-f28b-4595-abbf-d45d38fd4036.jpg存在于正确的文件夹中。
感谢您的帮助!!
你的错误是
FileNotFoundException
表示您提供的路径无效。请检查您的目录和文件路径
你试过毕加索:http://square.github.io/picasso/ 吗?您可以从文件中加载图像,代码更少。
String folderpath = "/data/data/" + getPackageName() + "/files";
String imagefolderpath = "/data/data/" + getPackageName() + "/files" + "/images";
File fileFolder = new File(folderpath);
// check if file Folder exists, if not create one and its subfolders
if (!fileFolder.exists()) {
fileFolder.mkdir();
}
File imageFolder = new File(imagefolderpath);
// check if image Folder exists, if not create one and its subfolders
if (!imageFolder.exists()) {
imageFolder.mkdir();
}
String imageFilePath = imageFolder + "/test.jpg";
File imagePath = new File(imageFilePath);
if (!imageFolder.exists()) {
Log.d("Log","Image not exists");
}
我使用滑翔库来显示网格视图中的图像,但是在我的图像视图中显示了注释。 E/Glide:class com。邦普泰克。滑行负载发动机GlideException:无法加载资源 我的代码在使用位图时工作正常。这是我的密码:
我是Android Studio的初学者。我的应用程序允许我添加用户(fn,ln,ADR,URI::ImageURI),列出他们并查看他们的信息。我希望能够显示一个用户的信息时,点击我的列表视图。 问题是我只得到一个空白,而不是我想要的ImageView。 E/DatabaseUTILS:向包java.lang.SecurityException:权限拒绝:读取com.android.provid
我将图像路径(来自图库的图像)存储在SQLite数据库中,现在加载到图像视图中。。。并使用此代码: 和错误: E/BitmapFactory:无法解码流:java.io.FileNotFoundException:/storage/emulated/0/DCIM/Camera/IMG_20161230_224205.jpg(权限被拒绝)
我无法上载firebase存储上的配置文件图像。我正在把烤面包片上的错误打印出来。为什么会出现这种情况?我无法解决这个问题,我审查了我的代码很多次。问题可能是什么?我如何调整我的代码以使其正常工作?提前向大家表示感谢。
但我得到了空光标。因此,filepath始终为空/null。 任何人,能建议我做错了什么吗?
我的Build.Gradle文件 UPD.这个简单的应用程序可以加载图片从互联网,但它不能加载图片从我的服务器。我的服务器的一些图片加载得很好,但其他的不是。我已经迷路了