标签: illegalstateexception

android - MediaRecorder抛出illegalstateexception

我正在尝试开发一个简单的Android音频录音机.一切都很好,它也可以在Android设备上正常运行.好像我可以开始录制,但是当我想要停止它时会抛出IllegalStateException.我找不到错误.这是代码:

public class VoiceRecorder {
MediaRecorder recorder= new MediaRecorder();
static Context cont;

public void startRecord(Context context) throws IllegalStateException, IOException{
    cont = context;

    recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
    recorder.setOutputFile(cont.getFilesDir()+"/recordings.3gp"); 
    recorder.prepare();
    recorder.start();  

 }  
public void stopRecording(Context context) {
    cont = context;
    recorder.stop();
    recorder.release();
    File file = new File (cont.getFilesDir()+"/recordings.3gp");
    UploadFile.uploadFile("recordings.3gp", file);
    recorder = null;
 }
}
Run Code Online (Sandbox Code Playgroud)

我想触发它​​:

VoiceRecorder vr = new VoiceRecorder();

vr.startRecord(续);

vr.stopRecording(续);

当调用启动时Logcat说:(应该没问题)

09-06 22:56:42.830: D/AudioHardwareMSM72XX(123): audpre_index = 0, tx_iir_index = 0
09-06 22:56:42.840: D/HTC Acoustic(123): msm72xx_enable_audpre: 0x0000
09-06 22:56:42.850: I/AudioHardwareMSM72XX(123): Routing …
Run Code Online (Sandbox Code Playgroud)

android illegalstateexception mediarecorder

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

在应用程序计费 - 快速设备方向 - 导致崩溃(IllegalStateException)

我根据Android的实施应用内结算指南实施了应用内结算(v3).

一切正常,直到我旋转设备,然后立即将其旋转回原来的方向.实际上,有时它会起作用,有时会崩溃:

java.lang.IllegalStateException: IabHelper was disposed of, so it cannot be used.

似乎这与IAB的异步性质有关,尽管我并不积极.

有什么想法吗?

android device-orientation illegalstateexception in-app-billing

5
推荐指数
1
解决办法
1239
查看次数

简单的java正则表达式抛出illegalstateexception

我试图做一个快速的理智检查......它失败了.这是我的代码 -

import java.util.regex.*;

public class Tester {
    public static void main(String[] args) {
        String s = "a";
        Pattern p = Pattern.compile("^(a)$");
        Matcher m = p.matcher(s);
        System.out.println("group 1: " +m.group(1));
    } 
}
Run Code Online (Sandbox Code Playgroud)

而我期望的是看到group 1: a.但相反,我得到了一个IllegalStateException: no match found,我不明白为什么.

编辑:我也尝试打印groupCount(),它说有1.

java regex illegalstateexception

5
推荐指数
1
解决办法
3391
查看次数

如何将ActionBarCompat Activity显示为在AndroidManifest.xml中设置其主题的对话框?

Android开发者文档介绍如何设置一个Dialog主题为Activity:

提示:如果需要自定义对话框,则可以Activity将对话框显示为对话框,而不是使用DialogAPI.只需创建一个活动并将其主题设置Theme.Holo.Dialog<activity>manifest元素:

<activity android:theme="@android:style/Theme.Holo.Dialog" >

而已.活动现在显示在对话窗口而不是全屏.

我正在尝试为使用ActionBarCompat的应用程序执行此操作.我一直在尝试不同的主题,比如......

android:theme="@android:style/Theme.Dialog"
android:theme="@style/Theme.AppCompat.Base.CompactMenu.Dialog"
android:theme="@style/Theme.AppCompat.CompactMenu.Dialog"
Run Code Online (Sandbox Code Playgroud)

但是,由于我最终得到相同的错误消息,它们似乎都没有工作:

java.lang.IllegalStateException:您需要将Theme.AppCompat主题(或后代)与此活动一起使用.

android android-theme illegalstateexception android-dialog android-actionbar-compat

5
推荐指数
1
解决办法
4637
查看次数

从spring控制器下载文件会抛出IllegalStateException

我使用以下(这看起来很像这个)代码下载文件:

@RequestMapping(value = "/tunes/{file_name}", method = RequestMethod.GET)
public void downloadTune(@PathVariable(value = "file_name") String tuneId,
        HttpServletResponse response) {
    perfomanceLogger.trace("=== Start retrieving tune with id: " + tuneId);
    try {
        String location = "";
        // try {
        location = resourceManagementService.getArtifcatByIdAndType(tuneId,
                ControllerConstants.TYPE_MP3);
        String pathSeparator = File.separator;

        if (location == null || location.equals("")) {// load the default
                                                        // tune
            location = System.getProperties().get("jboss.server.base.dir")
                    + pathSeparator + ServicesConstants.FILE_LOCATION
                    + pathSeparator + "ringtone_1.mp3";
            if (!new File(location).exists()) {
                location = "";
            }
        }

        if (!location.equals("")) { …
Run Code Online (Sandbox Code Playgroud)

controller spring-mvc download spring-security illegalstateexception

5
推荐指数
1
解决办法
1146
查看次数

适配器的内容已更改,但ListView未收到通知,后台未更新任何内容

我已经在SO上阅读了很多关于这个但是我没能在我的案例中找到解决方案.这是设置:

活动A,包含列表和正在显示的数据.当我的数据管理器的异步任务完成更新时,会发生以下情况:

protected void onPostExecute(Void v) {
        super.onPostExecute(v);

        if (editedDataSectionRows == null)
            editedDataSectionRows = new int[] {0, 0, 0, 0, 0, 0, 0};

        mData= editedData;
        mSectionRows = editedDataSectionRows;

        if (mCallback != null) {
            mCallback.dataUpdated();
        }
    }
Run Code Online (Sandbox Code Playgroud)

更新数据后,活动A将获得回调并执行以下操作:

@Override
public void dataUpdated() {
    mData = mDataManagerInstance.getData();
    mDataSectionCount = mDataManagerInstance.getDataSectionRows();
    mListAdapter.notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)

mData是一个包含所有"行"的ArrayList,而mDataSectionCount是一个int [],其中包含有关如何将mData拆分为多个部分的信息.

现在,活动A有一个可以打开第二个活动的选项菜单.活动B.

运行Monkey和Activity B时不时地完成.我的onResume for Activity A被调用:

@Override
protected void onResume() {
    super.onResume();
    mDataManagerInstance = DataManager.getInstance();

    mDataManagerInstance.setDataUpdatedListener(this);
    mDataManagerInstance.updateData();

    this.invalidateOptionsMenu();
}
Run Code Online (Sandbox Code Playgroud)

(updateData只会触发我的AsyncTask,如果它尚未运行)然后shit命中风扇......:

FATAL EXCEPTION: main
java.lang.IllegalStateException: The content of the …
Run Code Online (Sandbox Code Playgroud)

android listadapter android-listview illegalstateexception

5
推荐指数
1
解决办法
7352
查看次数

片段已在viewpager中添加了IllegalStateException

我正在使用viewpager来显示图片.我基本上只需要三个片段:前一个要预览的图像,当前的显示图像和下一个要预览的图像.我想只显示上一张和下一张图片的预览,当用户实际滑动到它时,它会变为完整图像.所以我想只使用3个片段来实现这一点.代码如下:

    private class ImagePagerAdapter extends FragmentStatePagerAdapter implements ViewPager.OnPageChangeListener {
    private ImageFragment mImageFragment;
    private ImagePreviewFragment mPreviousPreviewFragment;
    private ImagePreviewFragment mNextPreviewFragment;

    public ImagePagerAdapter(FragmentManager fm, ImageFragment image, ImagePreviewFragment previous, ImagePreviewFragment next) {
        super(fm);
        mImageFragment = image;
        mPreviousPreviewFragment = previous;
        mNextPreviewFragment = next;
    }

    @Override
    public Fragment getItem(int position) {
        if (position == mPager.getCurrentItem()) {
            mImageFragment.display(position);
            return mImageFragment;
        }

        if (position < mPager.getCurrentItem()) {
            mPreviousPreviewFragment.display(position - 1);
            return mPreviousPreviewFragment;
        }
        mNextPreviewFragment.display(position + 1);
        return mNextPreviewFragment;
    }


    @Override
    public int getCount() {
        return 100;
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

illegalstateexception android-fragments android-viewpager fragmentstatepageradapter

5
推荐指数
1
解决办法
4064
查看次数

HttpURLConnection已连接

我正在尝试复制它,openstack swift v1中的复制语句(工作正常):

curl -i $publicURL/GXPrueba/StorageAPI/PruebaStorageCopy.png -X PUT -H "X-Auth-Token:  $token" -H "X-Copy-From: /GXPrueba/StorageAPI/PruebaStorage.png" -H "Content-Length: 0"
Run Code Online (Sandbox Code Playgroud)

像这样:

private void copy(String originContainer, String origin, String destinationContainer, String destination) {
    try {
        URL url = new URL(storageUrl + DELIMITER + destinationContainer + DELIMITER + destination);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setDoInput(true);
        conn.setDoOutput(true);
        conn.setRequestMethod("PUT");
        conn.setRequestProperty("X-Auth-Token", authToken);
        conn.setRequestProperty("X-Copy-From", DELIMITER + originContainer + DELIMITER + origin);
        conn.setRequestProperty("Content-Length", "0");

        if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) {
            System.err.println("Error while copying the object: " + conn.getResponseCode());
        } …
Run Code Online (Sandbox Code Playgroud)

java openstack-swift httpconnection illegalstateexception

5
推荐指数
1
解决办法
6357
查看次数

MongoDB:java.lang.IllegalStateException:状态应为:open

我有一个应用程序,它从一个来源提取数据,然后将其向上插入到MongoDB。有时,拉取过程会花费很多时间,当应用尝试将行推入MongoDB时,可能会引发超时问题,引发以下异常:

com.mongodb.MongoSocketReadException: Prematurely reached end of stream
    at com.mongodb.connection.SocketStream.read(SocketStream.java:88)
    at com.mongodb.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:492)
    at com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:222)
    at com.mongodb.connection.UsageTrackingInternalConnection.receiveMessage(UsageTrackingInternalConnection.java:105)
    at com.mongodb.connection.DefaultConnectionPool$PooledConnection.receiveMessage(DefaultConnectionPool.java:438)
    at com.mongodb.connection.WriteCommandProtocol.receiveMessage(WriteCommandProtocol.java:262)
    at com.mongodb.connection.WriteCommandProtocol.execute(WriteCommandProtocol.java:104)
    at com.mongodb.connection.UpdateCommandProtocol.execute(UpdateCommandProtocol.java:64)
    at com.mongodb.connection.UpdateCommandProtocol.execute(UpdateCommandProtocol.java:37)
    at com.mongodb.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:168)
    at com.mongodb.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:289)
    at com.mongodb.connection.DefaultServerConnection.updateCommand(DefaultServerConnection.java:143)
    at com.mongodb.operation.MixedBulkWriteOperation$Run$3.executeWriteCommandProtocol(MixedBulkWriteOperation.java:481)
    at com.mongodb.operation.MixedBulkWriteOperation$Run$RunExecutor.execute(MixedBulkWriteOperation.java:647)
    at com.mongodb.operation.MixedBulkWriteOperation$Run.execute(MixedBulkWriteOperation.java:400)
    at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:180)
    at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:169)
    at com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:232)
    at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:223)
    at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:169)
    at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:75)
    at com.mongodb.Mongo.execute(Mongo.java:827)
    at com.mongodb.Mongo$2.execute(Mongo.java:810)
    at com.mongodb.MongoCollectionImpl.executeSingleWriteRequest(MongoCollectionImpl.java:515)
    at com.mongodb.MongoCollectionImpl.update(MongoCollectionImpl.java:508)
    at com.mongodb.MongoCollectionImpl.updateOne(MongoCollectionImpl.java:355)
    at com.test.db.mongoDB.RetryingMongoCollection.updateOne(RetryingMongoCollection.java:909)
Run Code Online (Sandbox Code Playgroud)

每个MongoException都有一个包装的MongoCollection类,现在抛出了java.lang.IllegalStateException的包装。

@Override
public UpdateResult updateOne(Bson filter, Bson update,
        UpdateOptions updateOptions) {
    UpdateResult retVal = null;
    final ExceptionHelper ex = …
Run Code Online (Sandbox Code Playgroud)

java exception mongodb illegalstateexception

5
推荐指数
1
解决办法
7689
查看次数

java.lang.IllegalStateException:无法从CursorWindow读取行0,列0

我需要从表中获取所有数据,我在sqlite dbhelper类中使用以下代码进行了相同的操作:

public Cursor getData() {
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor res = db.rawQuery("select * from " + PRODUCT_DETAILS_TABLE, null);
        return res;
    }
Run Code Online (Sandbox Code Playgroud)

现在,我通过以下方式在活动中使用curser获取数据:

  public HashMap<String, ArrayList<CartModal>> getDatas() {

            map = new HashMap<String, ArrayList<CartModal>>();
            stored_data = new ArrayList<CartModal>();
            Cursor cartdb = dbHelper.getData();
            if (cartdb != null && cartdb.getCount() > 0) {
                if (cartdb.moveToFirst()) {
                    do {
                        String mloggedinuser = cartdb.getString(0);
                        String mname = cartdb.getString(1);
                        String email = cartdb.getString(2);
                        String mobile = cartdb.getString(3);
                        String about = cartdb.getString(4);
                        String pid = cartdb.getString(5); …
Run Code Online (Sandbox Code Playgroud)

java sqlite android illegalstateexception

5
推荐指数
1
解决办法
542
查看次数