Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的android应用程序无法在android 7上运行_Android_Uri_Android 7.0 Nougat - Fatal编程技术网

我的android应用程序无法在android 7上运行

我的android应用程序无法在android 7上运行,android,uri,android-7.0-nougat,Android,Uri,Android 7.0 Nougat,我开发了一个摄像头安卓应用程序,它工作正常,但当我在安卓7中运行它时,它会创建一条消息,上面写着“应用程序已停止”!我想问题出在我的代码文件中,它是我的库文件: public class Gallery extends Activity { GridView gv; ArrayList<File> list; Context context; private static VirtualFileSystem vfs; @Override protected void onCrea

我开发了一个摄像头安卓应用程序,它工作正常,但当我在安卓7中运行它时,它会创建一条消息,上面写着“应用程序已停止”!我想问题出在我的代码文件中,它是我的库文件:

public class Gallery extends Activity {

GridView gv;
ArrayList<File> list;
Context context;
private static VirtualFileSystem vfs;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gallery2);


    File f = new File("/myfiles.db");

    list = imageReader(f);

    gv = (GridView) findViewById(R.id.gridview);
    gv.setAdapter(new GridAdapter());

    gv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            startActivity(new Intent(getApplicationContext(), viewImage.class).putExtra("img", list.get(position).toString()));
        }
    });
}


class GridAdapter extends BaseAdapter {
    public ImageView iv;
    public Bitmap bmp = null;
    public File file ;
    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }


    class ViewHolder {

        ImageView icon;

    }


    @Override
    public View getView(final int position,  View convertView, ViewGroup parent) {
        Log.e("sara" , "this part takes time");


        LayoutInflater inflater = getLayoutInflater();
        getLayoutInflater().inflate(R.layout.gallery_gridsq, parent, false);

        convertView = getLayoutInflater().inflate(R.layout.gallery_gridsq, parent, false);
        iv = (ImageView) convertView.findViewById(R.id.icon);
        file = new File(Uri.parse(getItem(position).toString()).getPath());
        new myTask(iv, file).execute();

        return convertView;
    }


    private class myTask extends AsyncTask <Void , Void ,Bitmap> {
        ImageView iv;
        File file;

        public myTask(ImageView iv, File file) {
            this.iv=iv;
            this.file= file;
        }



        @Override
        protected Bitmap doInBackground(Void... params) {

            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inJustDecodeBounds = true;
            try {
                BitmapFactory.decodeStream(new FileInputStream(file), null, options);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }

            options.inJustDecodeBounds = false;
            options.inSampleSize = 2;
            try {
                bmp = BitmapFactory.decodeStream(new FileInputStream(file), null, options);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            return bmp;
        }


        @Override
        protected void onPostExecute(Bitmap aVoid) {

            iv.setImageBitmap(aVoid);
        }
    }
}


ArrayList<File> imageReader ( File root) {

    final ArrayList<File> a = new ArrayList<>();

    File[] files = root.listFiles();


    for (int i = files.length - 1; i >= 0; i--) {


        if (files[i].isDirectory()) {
            // input name directory to array list
            a.addAll(imageReader(files[i]));
        } else {
            if (files[i].getName().endsWith(".jpg")) {
                a.add(files[i]);
            }
        }
    }
    return a;
}
公共类库扩展活动{
GridView gv;
数组列表;
语境;
专用静态虚拟文件系统vfs;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gallery2);
文件f=新文件(“/myfiles.db”);
列表=图像阅读器(f);
gv=(GridView)findViewById(R.id.GridView);
gv.setAdapter(新的GridAdapter());
gv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
startActivity(新意图(getApplicationContext(),viewImage.class).putExtra(“img”,list.get(position).toString());
}
});
}
类GridAdapter扩展了BaseAdapter{
公众视野四;
公共位图bmp=null;
公共文件;
@凌驾
public int getCount(){
返回list.size();
}
@凌驾
公共对象getItem(int位置){
返回列表。获取(位置);
}
@凌驾
公共长getItemId(int位置){
返回0;
}
类视图持有者{
图像视图图标;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
Log.e(“sara”,“这部分需要时间”);
LayoutInflater充气机=getLayoutInflater();
GetLayoutFlater().充气(R.layout.gallery_gridsq,父项,false);
convertView=GetLayoutFlater()。充气(R.layout.gallery_gridsq,父项,false);
iv=(ImageView)convertView.findViewById(R.id.icon);
file=新文件(Uri.parse(getItem(position.toString()).getPath());
新建myTask(iv,文件).execute();
返回视图;
}
私有类myTask扩展了AsyncTask{
ImageView iv;
文件;
公共myTask(ImageView iv,文件){
这.iv=iv;
this.file=file;
}
@凌驾
受保护位图doInBackground(无效…参数){
BitmapFactory.Options=new-BitmapFactory.Options();
options.inJustDecodeBounds=true;
试一试{
decodeStream(新的FileInputStream(文件),null,选项);
}catch(filenotfounde异常){
e、 printStackTrace();
}
options.inJustDecodeBounds=false;
options.inSampleSize=2;
试一试{
bmp=BitmapFactory.decodeStream(新文件输入流(文件),null,选项);
}catch(filenotfounde异常){
e、 printStackTrace();
}
返回bmp;
}
@凌驾
受保护的void onPostExecute(位图避免){
iv.设置图像位图(避免);
}
}
}
ArrayList imageReader(文件根目录){
最终ArrayList a=新ArrayList();
File[]files=root.listFiles();
对于(int i=files.length-1;i>=0;i--){
if(文件[i].isDirectory()){
//在数组列表中输入名称目录
a、 addAll(图像阅读器(文件[i]);
}否则{
if(文件[i].getName().endsWith(“.jpg”)){
a、 添加(文件[i]);
}
}
}
返回a;
}
在这个链接中,它使用了“getUriForFile”,但我认为在这种情况下它不能帮助我! 这是我的日志:

08-07 02:10:21.757 2343-2343/?E/memtrack:无法加载memtrack 模块(无此类文件或目录)08-07 02:10:21.757 2343-2343/? E/android.os.Debug:未能加载memtrack模块:-2 08-07 02:10:21.913 2349-2349/?E/memtrack:无法加载memtrack模块(否 这样的文件或目录)08-07 02:10:21.913 2349-2349/? E/android.os.Debug:未能加载memtrack模块:-2 08-07 02:10:22.220 2370-2370/?E/cutils跟踪:打开跟踪文件时出错: 权限被拒绝(13)08-07 02:10:23.334 2390-2390/?E/memtrack: 无法加载memtrack模块(没有此类文件或目录)08-07 02:10:23.334 2390-2390/?E/android.os.Debug:未能加载memtrack 模块:-2 08-07 02:10:23.708 2399-2415/?E/libEGL: 加载驱动程序(/system/lib/egl/libGLES\u仿真.so):dlopen失败: 库“/system/lib/egl/libGLES_仿真.so”未找到08-07 02:10:23.802 2399-2399/?E/AndroidRuntime:致命异常:主 流程:com.example.zeinab.amndoorbin,PID:2399 java.lang.NullPointerException:cancel()调用时使用null 处理意图 在android.app.AlarmManager.cancel(AlarmManager.java:890)中 位于info.guardianproject.cacheword.CacheWordService.resetTimeout(CacheWordService.java:189) 位于info.guardianproject.cacheword.CacheWordService.attachSubscriber(CacheWordService.java:145) 位于info.guardianproject.cacheword.CacheWordHandler$2.onServiceConnected(CacheWordHandler.java:457) 在android.app.LoadedApk$ServiceDispatcher.doConnected上(LoadedApk.java:1453) 在android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1481)上 位于android.os.Handler.handleCallback(Handler.java:751) 位于android.os.Handler.dispatchMessage(Handler.java:95) 位于android.os.Looper.loop(Looper.java:154)
ActivityCompat.requestPermissions(yourActivity.this,
                new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
                1);
@Override
public void onRequestPermissionsResult(int requestCode,
                                       String permissions[], int[] grantResults){
   switch (requestCode) {
       case 1: {

        // If request is cancelled, the result arrays are empty.
        if (grantResults.length > 0
                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

            // permission was granted, 
            // contacts-related task you need to do.          
         } else {

            // permission denied
            // functionality that depends on this permission.
            Toast.makeText(yourActivity.this, "Permission denied to read your External storage", Toast.LENGTH_SHORT).show();
        }
        return;
    }

    // other 'case' lines to check for other
    // permissions this app might request
  }
}