Articles of error handling

处理Android自定义内容提供程序中的(跨进程)exception

我的Android应用中有一个自定义内容提供商,运行得相当好。 我希望其他应用也可以访问我的内容提供商。 我想要一些干净的方式来传达exception和错误,但据我所知,Android内容提供程序框架没有提供任何方法来跨进程传播exception。 我应该如何向调用者指明exception状态? 我是否必须以某种方式将其编码为我的返回数据并依赖客户端进行检查? 还有其他选择吗? 如果将编码转换为普通的返回数据,那么最好的方法是什么? (我可以看到query调用返回的Cursor的许多替代方法,但是insert返回的Uri ,还是update或delete返回的int呢?)

从Android中的HTML页面呼叫电话号码时获取net :: ERR_UNKNOWN_URL_SCHEME

我从Android的HTML页面调用电话号码选项时收到“net :: ERR_UNKNOWN_URL_SCHEME”。 我是否需要在清单中添加任何权限才能使其正常工作? 到目前为止,我还没有在清单中添加任何内容。 这是HTML代码: Call us free!

android:我没有堆栈跟踪,手机只是挂起

我暂停相机应用后手机崩溃,然后切换回来拍照。 这只发生在我的三星Galaxy S上,在我的Huwai设备上它完全有效。 我find了导致错误的代码行。 不幸的是,这些行很有用,所以我不能剥离它们: public void surfaceDestroyed(SurfaceHolder holder) { // Log.d(TAG,”surfaceDestroyed()”); if(this.camera != null){ camera.stopPreview(); // the next two lines lead to the error after switching back to the app and taking a picure camera.release(); this.camera = null; } } 不幸的是我没有得到堆栈跟踪。 我得到的只是: 12-17 12:45:01.609: ERROR/SecCamera(10857): cancelAutofocus() end, 0, 2 12-17 12:45:01.613: ERROR/SecCamera(10857): stopPreview() 12-17 […]

RxJava:如何使用zip操作符处理错误?

我正在使用RxJava和RxAndroid与Retrofit2。 Observable responseOneObservable = getRetrofitClient().getDataOne() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()); Observable responseTwoObservable = getRetrofitClient().getDataTwo() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()); 在上面两个Observer上使用如下的zip操作符。 Observable<ArrayList> testDataObservable = Observable.zip(responseOneObservable, responseTwoObservable, new Func2<ResponseOne, ResponseTwo, ArrayList>() { @Override public ArrayList call(ResponseOne responseOne, ResponseTwo responseTwo) { ArrayList testDataList = new ArrayList(); // Add test data from response responseOne & responseTwo return testDataList; } }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<ArrayList>() { […]

AsyncTask,RejectedExecutionException和Task Limit

我使用AsyncTask从远程服务器获取大量缩略图并在网格视图中显示它们。 问题是,我的网格视图一次显示20个缩略图,因此创建20个AsyncTasks并启动20个执行,每个缩略图一个。 我的代码中出现RejectedExecutionexception。 我记得在某个地方读过AsyncTask一次可以在队列中拥有的任务数量有限,我可能会这样做。 这个酒吧被解除了吗? 有没有办法增加这个限制? 忽略这个exception是否安全?(通过使用空catch(RejectedException e){}阻止?) 我在Android 1.6模拟器上运行此代码,并在我的代码中运行API级别(minSDKVersion为3)。 [编辑:添加了SDK和API级别信息]

Firebase Android:发生了内部错误。

在我的应用程序中通过Google登录会出现此错误: 发生内部错误。 [OPERATION_NOT_ALLOWED] 我在Firebase控制台中启用了Google。 权限是正确的,我似乎无法find问题。 我确定这与我的代码无关,但是如果确实告诉我的话。 SignInactivity: @Override public void onClick(View v) { switch (v.getId()) { case R.id.sign_in_button: signIn(); break; } } private void signIn() { Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); startActivityForResult(signInIntent, RC_SIGN_IN); } @Override public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { // An unresolvable error has occurred and Google APIs (including Sign-In) will not // be […]

检查DAY_OF_WEEK是否在星期一到星期五之间

我正在尝试创建一个方法,检查“今天”是否在星期一到星期五之间。 为此我得到这行’int day = Calendar.DAY_OF_WEEK;’ 实际的一天。 之后我用日期(星期一,星期二,星期四,星期四和星期五)填写一个ArrayList。 现在,当我检查实际的日期是否在我的ArrayList中时,我设置boolean DAY = true否则我设置boolean DAY = false 。 我今天和昨天尝试了这个方法,但它始终将布尔值设置为false。 我需要更改我的代码有什么用? 你会在这里find代码。 码 int day = Calendar.DAY_OF_WEEK; ArrayList daylist = new ArrayList(); daylist.add(Calendar.MONDAY); daylist.add(Calendar.TUESDAY); daylist.add(Calendar.WEDNESDAY); daylist.add(Calendar.THURSDAY); daylist.add(Calendar.FRIDAY); if (daylist.contains(day)){ DAY = true; }else{ DAY = false; }

SecurityException:无法finddex.jar的字段

我该如何解决这个错误? 我试过了: 刷新项目并重建。 清理项目,并重建。 关闭并重新开放项目,并重建 删除项目(但不删除文件 – 这是项目删除确认对话框中的checkbox),并将其重新导入为现有项目,以及清理和重建。 删除项目,删除项目中的.project和.classpath文件,并使用我的文件作为现有源创建新项目。 这些都没有奏效。 我该如何解决这个问题?

MEDIA_ERROR_SERVER_DIED是什么意思?

在Android文档中 ,有一个常量定义的MEDIA_ERROR_SERVER_DIED ,描述如下: 媒体服务器死了。 在这种情况下,应用程序必须释放MediaPlayer对象并实例化一个新对象。 这看起来很模糊。 媒体服务器死了是什么意思? 为什么会死? 之后立即尝试再玩一次是否合适呢?

只有创建视图层次结构的原始线程才能触及其视图。 在android

我只是一个初学者所以请原谅我可能会提出一个愚蠢的问题 我不明白只有创建视图层次结构的原始线程才能触及其视图。 请有人教我这个错误发生的原因以及如何解决这个问题。 谢谢 这是我的class级 public class MainActivity extends Activity { TextView title; Random random = new Random(); int counter = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.startup); startingUp(); } private void startingUp() { Thread timer = new Thread() { //new thread public void run() { Boolean b = true; try { do […]