标签: runtimeexception

java.lang.RuntimeException:Handler(android.os.Handler)在死线程上向Handler发送消息

在我的应用程序中我使用IntentService发送短信.

    @Override
protected void onHandleIntent(Intent intent) {
    Bundle data = intent.getExtras();
    String[] recipients = null;
    String message = getString(R.string.unknown_event);
    String name = getString(R.string.app_name);
    if (data != null && data.containsKey(Constants.Services.RECIPIENTS)) {
        recipients = data.getStringArray(Constants.Services.RECIPIENTS);
        name = data.getString(Constants.Services.NAME);
        message = data.getString(Constants.Services.MESSAGE);
        for (int i = 0; i < recipients.length; i++) {
            if(!StringUtils.isNullOrEmpty(recipients[i])) {
                try {
                    Intent sendIntent = new Intent(this, SMSReceiver.class);
                    sendIntent.setAction(Constants.SMS.SEND_ACTION);
                    PendingIntent sendPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, sendIntent, PendingIntent.FLAG_UPDATE_CURRENT);
                    Intent deliveryIntent = new Intent(this, SMSReceiver.class);
                    deliveryIntent.setAction(Constants.SMS.DELIVERED_ACTION);
                    PendingIntent deliveryPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, deliveryIntent, …
Run Code Online (Sandbox Code Playgroud)

service android handler android-intent runtimeexception

59
推荐指数
2
解决办法
5万
查看次数

如何从Executors正确捕获RuntimeExceptions?

假设我有以下代码:

ExecutorService executor = Executors.newSingleThreadExecutor();
executor.execute(myRunnable);
Run Code Online (Sandbox Code Playgroud)

现在,如果myRunnable抛出一个RuntimeExcpetion,我怎么能抓住它?一种方法是提供我自己的ThreadFactory实现,newSingleThreadExecutor()uncaughtExceptionHandler为其中的Threads 设置自定义.另一种方法是换myRunnableRunnable包含try-catch -block 的本地(匿名).也许还有其他类似的解决方法.但是......不知怎的,这感觉很脏,我觉得不应该这么复杂.有清洁的解决方案吗?

java concurrency executor runtimeexception

43
推荐指数
4
解决办法
2万
查看次数

java.lang.RuntimeException:takePicture失败

当我连续点击"捕获"按钮(没有任何中断)时,获取运行时异常如何解决此问题?

如果它不可能,那我怎么处理这个例外?

btnCapture = (ImageButton) findViewById(R.id.btnCapture);
                final MediaPlayer mp = MediaPlayer.create(CameraLauncherActivity.this, R.raw.button);
                btnCapture.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                            // line where getting RuntimeException
                        camera.takePicture(null, null, mPicture);   

                    }
                });
Run Code Online (Sandbox Code Playgroud)

日志:

02-12 14:48:41.580: E/AndroidRuntime(6997): FATAL EXCEPTION: main
02-12 14:48:41.580: E/AndroidRuntime(6997): java.lang.RuntimeException: takePicture failed
02-12 14:48:41.580: E/AndroidRuntime(6997):     at android.hardware.Camera.native_takePicture(Native Method)
02-12 14:48:41.580: E/AndroidRuntime(6997):     at android.hardware.Camera.takePicture(Camera.java:1126)
02-12 14:48:41.580: E/AndroidRuntime(6997):     at android.hardware.Camera.takePicture(Camera.java:1071)
02-12 14:48:41.580: E/AndroidRuntime(6997):     at app.cam.shane.CameraLauncherActivity$3.onClick(CameraLauncherActivity.java:116)
02-12 14:48:41.580: E/AndroidRuntime(6997):     at android.view.View.performClick(View.java:4223)
02-12 14:48:41.580: E/AndroidRuntime(6997):     at android.view.View$PerformClick.run(View.java:17275)
02-12 14:48:41.580: E/AndroidRuntime(6997):     at android.os.Handler.handleCallback(Handler.java:615) …
Run Code Online (Sandbox Code Playgroud)

java android runtimeexception android-camera

42
推荐指数
3
解决办法
4万
查看次数

为什么不捕获Exception catch RuntimeException?

这对我来说很奇怪. RuntimeException继承自Exception,继承自Throwable.

catch(Exception exc) { /* won't catch RuntimeException */
Run Code Online (Sandbox Code Playgroud)

catch(Throwable exc) { /* will catch RuntimeException */
Run Code Online (Sandbox Code Playgroud)

我知道这RuntimeException是特别的,因为它没有被检查.但据我所知,这仅适用于是否必须声明例外,而不是它们是否被捕获.即便如此,我也不知道为什么这个逻辑会在捕获Throwable时破坏.

这与我非常相关,因为我遇到了可以在终端操作中抛出RuntimeExceptions的情况.我不确定这个模式的名称,但类似的,我的类EmailRoller需要一个数组Callbacks.代码如下所示:

for(Callback cb : callbacks) {
    try {
        cb.call(item);
    }
    catch(Exception exc) {
        logger.error("Error in callback: ", exc);
   }
}
Run Code Online (Sandbox Code Playgroud)

所以这是一个像OOME这样的东西需要通过的情况,因为如果其中一个回调消耗所有的机器内存,那肯定会影响其他的运行.但是一个NullPointerException?还是一个IndexOutOfBoundsException?这些会影响回调,但不会阻止其他人运行.

此外,这是一个企业设计.不同的程序员或团队可以添加回调来处理项目,但它们应该彼此隔离.这意味着,作为负责将这些回调相互隔离的程序员,我不应该依赖它们来确保错误不会漏掉.捕捉Exception应该是正确的,但不是因为RuntimeException滑倒.所以我更普遍的问题是:这里有什么好的模式?只是catch(Exception | RuntimeException exc),我认为由于继承而导致语法错误?

java exception runtimeexception

40
推荐指数
3
解决办法
10万
查看次数

错误:android studio中的任务':app:transformClassesWithDexForDebug'执行失败

我正在将我的项目从eclipse转移到Android Studio.在运行我的应用程序时,我收到以下错误.无法找到任何解决方案.我也启用了multidex.

错误:任务':app:transformClassesWithDexForDebug'的执行失败.com.android.build.api.transform.TransformException:java.lang.RuntimeException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:进程'命令'C:\ Program Files\Java\jdk1.7.0_79\bin\java.exe''以非零退出值1结束

我的gradle文件也在下面

apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
    applicationId "com.myapp"
    minSdkVersion 9
    targetSdkVersion 21
    multiDexEnabled true
}buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard- android.txt'), 'proguard-project.txt', 'proguard-google-api-client.txt'
     }
   }
 }
 dependencies {
 compile 'com.android.support:support-v4:23.4.0'
 compile 'com.google.android.gms:play-services:+'
 compile 'com.google.http-client:google-http-client-gson:1.20.0'
compile 'com.google.code.gson:gson:2.1'
compile 'com.android.support:appcompat-v7:23.4.0'
compile files('libs/activation.jar')
compile files('libs/additionnal.jar')
compile files('libs/android-support-v7-cardview.jar')
compile files('libs/android-support-v7-recyclerview.jar')
compile files('libs/commons-logging-1.1.1.jar')
compile 'com.google.api-client:google-api-client:1.18.0-rc'
compile 'com.google.api-client:google-api-client-android:1.18.0-rc'
compile 'com.google.api-client:google-api-client-appengine:1.18.0-rc'
compile 'com.google.http-client:google-http-client:1.18.0-rc'
compile 'com.google.http-client:google-http-client-android:1.18.0-rc'
compile 'com.google.http-client:google-http-client-appengine:1.18.0-rc'
compile 'com.google.oauth-client:google-oauth-client:1.18.0-rc'
compile 'com.google.oauth-client:google-oauth-client-appengine:1.18.0-rc'
compile files('libs/google-api-client-gson-1.18.0-rc.jar') …
Run Code Online (Sandbox Code Playgroud)

android runtimeexception android-studio

36
推荐指数
5
解决办法
10万
查看次数

如何抛出RuntimeException("找不到符号")

我试图在我的代码中抛出异常,如下所示:

throw RuntimeException(msg);
Run Code Online (Sandbox Code Playgroud)

但是,当我在NetBeans中构建时,我收到此错误:

C:\....java:50: cannot find symbol
symbol  : method RuntimeException(java.lang.String)
location: class ...
        throw RuntimeException(msg);
1 error
Run Code Online (Sandbox Code Playgroud)

我需要导入一些东西吗?我拼错了吗?我敢肯定我一定要做一些哑巴:-(

java exception-handling runtimeexception

32
推荐指数
4
解决办法
12万
查看次数

扩展类android.support.design.widget.FloatingActionButton时出错

我的应用程序崩溃是因为

扩展类android.support.design.widget.FloatingActionButton时出错

这是我在XML中的代码

<android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right"
        android:layout_margin="16dp"
        android:src="@drawable/icon_right"
        app:backgroundTint="@color/green"
        android:onClick="previewphoto"
        app:layout_anchorGravity="bottom|right|end" />
Run Code Online (Sandbox Code Playgroud)

这是我的傻瓜

compile 'com.android.support:appcompat-v7:23.4.0' // appcompat library
compile 'com.android.support:design:23.4.0'
Run Code Online (Sandbox Code Playgroud)

我的logcat

致命异常:主要过程:com.cyanlabsid.cetakphoto,PID:15298了java.lang.RuntimeException:无法启动活动ComponentInfo {com.cyanlabsid.cetakphoto/com.cyanlabsid.cetakphoto.PhotoPicker}:android.view.InflateException:二进制XML文件行#76:二进制XML文件行#76:错误充气类android.support.design.widget.FloatingActionButton在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2423)在android.app.ActivityThread.handleLaunchActivity(ActivityThread. java:2483)在Android.app.Handler.dispatchMessage(Handler.java:)的android.app.ActivityThread.access $ 900(ActivityThread.java:153)android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1349) 102)在android.app.Looper.loop(Looper.java:148)的android.app.ActivityThread.main(ActivityThread.java:5441),位于com.android的java.lang.reflect.Method.invoke(Native Method) .internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:738)at com.android.internal.os.ZygoteInit.main(ZygoteInit.ja va:628)由以下原因引起:android.view.InflateException:二进制XML文件行#76:二进制XML文件行#76:在android.view.LayoutInflater.inflate(LayoutInflater)中输出类android.support.design.widget.FloatingActionButton时出错.的java:543)在android.view.LayoutInflater.inflate(LayoutInflater.java:427)在android.view.LayoutInflater.inflate(LayoutInflater.java:374)在android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java :284)在android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)在com.cyanlabsid.cetakphoto.PhotoPicker.onCreate(PhotoPicker.java:74)在android.app.Activity.performCreate(活动.的java:6303)在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483)在android.app.ActThread.access $ 900(ActivityThread.java:153)在android.app.Act ivityThread $ H.handleMessage(ActivityThread.java:1349)位于android.app.A.Toread.main的android.os.Handler.dispatchMessage(Handler.java:102)android.os.Looper.loop(Looper.java:148) (ActivityThread.java:5441)在java.lang.reflect.Method.invoke(本机方法)在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:738)在com.android.internal.os .ZygoteInit.main(ZygoteInit.java:628)

有人能说出我的错吗?

android runtimeexception floating-action-button

31
推荐指数
7
解决办法
3万
查看次数

在C#中等效的Java RuntimeException?

C#是否具有Java的java.lang.RuntimeException等价物?

(IE是一个异常,可以在不必被捕获的情况下抛出,或者在抛出异常时程序崩溃.)

.net exception-handling runtimeexception c#-3.0

27
推荐指数
1
解决办法
2万
查看次数

如何包装已检查的异常但在Java中保留原始运行时异常

我有一些代码可能会抛出已检查和运行时异常.

我想捕获已检查的异常并将其包装为运行时异常.但是如果抛出RuntimeException,我不必将它包装起来,因为它已经是运行时异常.

我的解决方案有点开销,并不"整洁":

try {
  // some code that can throw both checked and runtime exception
} catch (RuntimeException e) {
  throw e;
} catch (Exception e) {
  throw new RuntimeException(e);
}
Run Code Online (Sandbox Code Playgroud)

想要更优雅的方式吗?

java runtimeexception checked-exceptions

25
推荐指数
3
解决办法
6640
查看次数

"RuntimeException:执行暂停未恢复的活动"

(我在stackoverflow上看到一个类似的问题,但答案并不是真正的答案,问题的上下文也有所不同.)

"java.lang.RuntimeException:执行暂停未恢复的活动"

我开发了一个游戏应用程序(使用普通视图和GLSurfaceView).如果我打开和关闭我的手机显示非常快,我可能会导致此异常有时(由ActivityThread抛出),但我的应用程序异常后正常运行.我的应用程序是横向应用程序,也可以在清单中正确设置(包括方向和配置更改).

这个可以吗?

这是ActivityThread在我的应用程序的应用程序名称下抛出的RuntimeException,但它不会终止我的应用程序.

android screen runtimeexception android-activity

24
推荐指数
1
解决办法
2万
查看次数