Android出现“Read-only file system”解决办法

 更新时间:2016年9月20日 20:00  点击:2093
下面介绍一篇Android出现“Read-only file system”解决办法 有碰到这类问题的朋友可参考参考。

Android-出现Read-only file system的解决方法

输入命令:

 代码如下 复制代码

mount -o remount rw /system

(每次都要执行一次)

有的朋友说是是“/”的问题,命令改为:adb push AlarmClock.apk systemapp  即“/”改为“”即可。  adb push 电脑路径 模拟器路径 在电脑路径中必须用“” 而模拟器中必须是“/” 并且模拟器的跟路径是是只读的


操作设备文件系统上的文件结果遇到"... Read-only file system"。


解决办法:

1. 最简单的,adb remount

2. 不行的话,adb shell su之后将文件系统remount为读写权限: mount -o rw,remount /system。出于安全考虑,记得完事后remount回只读: mount -o ro,remount /system

3. 和方法2类似,mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system


1.  使用命令:adb push AlarmClock.apk /system/app
提示:

 代码如下 复制代码
failed to copy 'AlarmClock.apk' to '/system/app/AlarmClock.apk': Read-only file system
我们做Android开发时奖保存图片到SD卡,但是Gallery中不能及时显示 下面我找到了问题所在然后解决了这个问题。

当保存图片后打开gallery时,有的会自动给你刷新,有的不行,这样就导致图片保存到SD卡上时,不能及时在gallery中看到,遇到这种情况最好是自己刷新。

通过 Intent.ACTION_MEDIA_MOUNTED 进行整个SD卡扫描:

 代码如下 复制代码
public void sdScan(){    
        sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"   
                    + Environment.getExternalStorageDirectory())));    
}

通过 Intent.ACTION_MEDIA_SCANNER_SCAN_FILE 扫描某个文件:

 代码如下 复制代码

public void fileScan(String filePath){    
        Uri data = Uri.parse("file://"+filePath);    
        sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, data));    
}

注:filePath为图片在SD卡中的地址,当保存图片后,调用以上方法即可; sendBroadcast为类Context的一个方法。

 

Android动画背景图自动播放的实现程序,我们在开发android应用的时候,经常会遇到类似从网络加载大图,在加载的过程中,在图片要显示的ImageView位置,先显示一个转圈的loading动画图,给用户的体验会更好一些,要实现这个动画图很简单,使用在/res/anim中定义xml的方式,下面我总结三种方法

目前我知道的有三种方法:

 代码如下 复制代码

ImageView imageView = (ImageView)findViewById(R.id.xxx);方法一:使用Runnalbe()来加载

imageView.setBackgroundResource(R.anim.xxxxx);
final AnimationDrawable animationDrawable = (AnimationDrawable)imageView.getBackground();
imageView.post(new Runnable() {
    @Override
        public void run()  {
            animationDrawable.start();
        }
});

方法二:使用AsyncTask异步加载启动

 代码如下 复制代码

imageView.setBackgroundResource(R.anim.xxxxx);
AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();
RunAnim runAnim=new RunAnim();
runAnim.execute("");
 
class RunAnim extends AsyncTask<String, String, String> {
        @Override
        protected String doInBackground(String... params) {
            if (!animationDrawable.isRunning()) {
                animationDrawable.stop();
                animationDrawable.start();
            }
            return "";
        }
}

方法三:通过添加addOnPreDrawListener来自动加载

 代码如下 复制代码

imageView.setBackgroundResource(R.anim.xxxxx);
AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();
imageView.getViewTreeObserver().addOnPreDrawListener(preDrawListener);
 
OnPreDrawListener preDrawListener = new OnPreDrawListener(){
    @Override
    public boolean onPreDraw() {
        animationDrawable.start();
        return true; //必须要有这个true返回
    }
};

以上三种方法经过测试没有问题,另外网上有一些说使用重写Activity的onWindowFocusChanged()方法来实现,但是还是有不足,得改变焦点才能触发,虽然理论可以自动实现改变焦点,感觉还是不甚可取。

本文章总结了一段Android获取通话时间程序代码,有需要的朋友可参考一下。

我们知道安卓系统中通话时长应该是归Callog管,所以建议去查查ContactProvider,或者是TelephonyProvider

Service测试

可以的通话开始的时候启动Service 记录当前时间A, 然后stopSelf(); 另外在通话结束的时候再次启动一下Service,再次获得当前时间B, 然后把时间A和B进行比较处理

String time = Long.toString(比较后处理的时间)

然后调用

 代码如下 复制代码
Toast.makeText(this, time, Toast.LENGTH_SHORT).show();

使之显示出来 ,再stopSelf();


获取联系人通话时间的长短java代码

      

 代码如下 复制代码
          Cursor cursor = getContentResolver().query(Calls.CONTENT_URI,
                    new String[] { Calls.DURATION, Calls.TYPE, Calls.DATE },
                    null,
                    null,
                    Calls.DEFAULT_SORT_ORDER);
                MainActivity.this.startManagingCursor(cursor);
                boolean hasRecord = cursor.moveToFirst();
                long incoming = 0L;
                long outgoing = 0L;
                int count = 0;
                while (hasRecord) {
                    int type = cursor.getInt(cursor.getColumnIndex(Calls.TYPE));
                    long duration = cursor.getLong(cursor.getColumnIndex(Calls.DURATION));
                    switch (type) {
                        case Calls.INCOMING_TYPE:
                            incoming += duration;
                            break;
                        case Calls.OUTGOING_TYPE:
                            outgoing += duration;
                        default:
                            break;
                    }
                    count++;
                    hasRecord = cursor.moveToNext();
                }
                Toast.makeText(MainActivity.this,
                    "共计 " + count + "次通话 . 总通话时长 " + (incoming + outgoing) + "秒. 其中接听 " + incoming + " 秒, 拔打 "
                                    + outgoing + " 秒.",
                    Toast.LENGTH_LONG).show();
在使用java开时,WAC启动Android模拟器时出现“transfer error: Read-only file system”错误,下面我们来看解决办法。

然后Widget无法安装和执行!在参考了官方论坛上的相同问题的一个帖子后,也没有实质的解决办法(主要是楼主不厚道,解决了也不说明如何解决)。


最终还是自己摸索解决了,因为我用的是win7,默认启动SDK中的Eclipse不是管理员权限,导致如上错误。


解决的办法是:

1、打开AVD所在的目录(默认是C:Users你的名称.android),将.android目录及其子目录的只读属性去掉;

2、在SDK的Eclipse.exe上右键选择“以管理员身份运行”,然后启动SDK再运行widget;

需要注明的是这个是win7下的解决办法,我是直接用的WAC SDK进行安装测试的。

其它区别总结

1. 出现“Project has no target set. Edit the project properties to set one.”的错误
Eclipse导入步骤:
 1. File.../Import.../General/Existing Projects into Workspace
 2. 点Browse按钮,选择要导入的项目所在目录,点Finish
 3. 如果出现“Project has no target set. Edit the project properties to set one.”的错误,则需要在该项目的属性里选中Project Build Target的Android版本
 4. 文件夹中会自动追加一个gen的小目录,里面是自动生成的R.java文件,如果导入的文件中已有R.java,则会报错,此时只要将原来的R.java文件删掉即可。

如果有提示关于AndroidManifest.xml的错误,请选中此项目,并右键选择Android Tools->Fix Project,将会自动帮你修复错
误。

 
2. Could not find *.apk

1) 选择工程的Properties->Java Build Path->Libraries,去掉默认的Android包;

2) 点击左侧的Android标签,在右边的Project Build Target中选择Android 2.0;

3) 右键单击工程,选择Android Tools->Fix Project Properties.

有时候也可能是jdk版本的问题,改了jdk版本后,重启下eclipse


3、emulator: ERROR: the user data image is used by another emulator. Aborting

没有正常关闭导致的,删除android-sdk-windows/.android/avd/对于版本/下的以.lock结尾的文件夹就行

 
4. qemu: could not open disk image E:/Android/sdcard.img

[!--infotagslink--]

相关文章

  • PHP session_start()很慢问题分析与解决办法

    本文章来给各位同学介绍一下关于PHP session_start()很慢问题分析与解决办法,希望碰到此问题的同学可进入参考。 最近在做东西的时候发现一个问题 有一个接口挂...2016-11-25
  • php中json_decode()和json_encode()用法与中文不显示解决办法

    本文章介绍了关于php中json_decode()和json_encode()用法与中文不显示解决办法,有需要的朋友可以参考一下下。 php中json_decode()和json_encode() 1.json_decode(...2016-11-25
  • phpexcel导出数据身份证后四位0000解决办法

    在php中我们如果要导入excel数据我们通常会使用phpexcel插件了,但是有朋友会发与使用phpexcel导出数据出现身份证后四位是0000情况了,下面我们就来看解决办法。 最...2016-11-25
  • 401错误码代表什么 401错误解决办法

    401是HTTP状态码的一种,属于“请示错误”,表示请求可能出错,已妨碍了服务器对请求的处理。具体的401错误是指:未授权,请求要求进行身份验证。登录后,服务器可能会返回对页面...2017-01-22
  • apache网站提示503错误解决办法

    Apache status 503 的原因大致有如下几种情况 : 1、 CPU 负载过高,服务器响应不过来,返回503 2、 系统连接数超限,超过MaxVhostClients的上限,返回503 3、 单IP连接数超限,超过M...2016-01-28
  • Perl CPAN::Modulelist的解决办法

    今天用CPAN安装Term::ReadLine,报了个这样的错误 Going to read /root/.cpan/sources/modules/03modlist.data.gz Can't locate object method "data" via package "C...2016-11-25
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • c++中的system("pause")的作用和含义解析

    这篇文章主要介绍了c++中system("pause")的作用和含义,非常不错,具有参考借鉴价值,需要的朋友参考下吧...2020-04-25
  • phpStudy访问速度慢和启动失败的解决办法

    下面给大家介绍phpstudy访问速度慢的解决办法。1、修改mysql数据库链接地址为ip地址127.0.0.1。2、使用最新版本,这个坑了我好久时间。下面一段内容是关于phpstudy启动失败的解决办法。php5.3、5.4和apache都是用vc9编...2015-11-24
  • PHP Curl出现403错误的解决办法

    自己用的小PHP应用,使用curl抓网页下来处理,为了穿墙方便,使用Privoxy作为代理,便于选择哪些网站使用proxy、哪些不用。但今天却遇到了奇怪的问题,访问google baidu这些网站居然都返回403错误,而访问其他的一些网站没事,如果...2014-05-31
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • Android模拟器上模拟来电和短信配置

    如果我们的项目需要做来电及短信的功能,那么我们就得在Android模拟器开发这些功能,本来就来告诉我们如何在Android模拟器上模拟来电及来短信的功能。 在Android模拟...2016-09-20
  • 夜神android模拟器设置代理的方法

    夜神android模拟器如何设置代理呢?对于这个问题其实操作起来是非常的简单,下面小编来为各位详细介绍夜神android模拟器设置代理的方法,希望例子能够帮助到各位。 app...2016-09-20
  • android自定义动态设置Button样式【很常用】

    为了增强android应用的用户体验,我们可以在一些Button按钮上自定义动态的设置一些样式,比如交互时改变字体、颜色、背景图等。 今天来看一个通过重写Button来动态实...2016-09-20
  • Android WebView加载html5页面实例教程

    如果我们要在Android应用APP中加载html5页面,我们可以使用WebView,本文我们分享两个WebView加载html5页面实例应用。 实例一:WebView加载html5实现炫酷引导页面大多...2016-09-20
  • 深入理解Android中View和ViewGroup

    深入理解Android中View和ViewGroup从组成架构上看,似乎ViewGroup在View之上,View需要继承ViewGroup,但实际上不是这样的。View是基类,ViewGroup是它的子类。本教程我们深...2016-09-20
  • Android自定义WebView网络视频播放控件例子

    下面我们来看一篇关于Android自定义WebView网络视频播放控件开发例子,这个文章写得非常的不错下面给各位共享一下吧。 因为业务需要,以下代码均以Youtube网站在线视...2016-10-02
  • Android用MemoryFile文件类读写进行性能优化

    java开发的Android应用,性能一直是一个大问题,,或许是Java语言本身比较消耗内存。本文我们来谈谈Android 性能优化之MemoryFile文件读写。 Android匿名共享内存对外A...2016-09-20
  • Android设置TextView竖着显示实例

    TextView默认是横着显示了,今天我们一起来看看Android设置TextView竖着显示如何来实现吧,今天我们就一起来看看操作细节,具体的如下所示。 在开发Android程序的时候,...2016-10-02
  • PHP判断上传文件类型的解决办法

    分享给大家php判断上传文件类型的方法,大家一起学习学习。/** * 读取文件前几个字节 判断文件类型 * @return String */ function checkTitle($filename){ $file=fopen($filename, "rb"); $bin=fread($file, 2); /...2015-10-21