我正在尝试开发一个简单的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的实施应用内结算指南实施了应用内结算(v3).
一切正常,直到我旋转设备,然后立即将其旋转回原来的方向.实际上,有时它会起作用,有时会崩溃:
java.lang.IllegalStateException: IabHelper was disposed of, so it cannot be used.
似乎这与IAB的异步性质有关,尽管我并不积极.
有什么想法吗?
android device-orientation illegalstateexception in-app-billing
我试图做一个快速的理智检查......它失败了.这是我的代码 -
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.
在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
我使用以下(这看起来很像这个)代码下载文件:
@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
我已经在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) 我正在使用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
我正在尝试复制它,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) 我有一个应用程序,它从一个来源提取数据,然后将其向上插入到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) 我需要从表中获取所有数据,我在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) android ×5
java ×4
controller ×1
download ×1
exception ×1
listadapter ×1
mongodb ×1
regex ×1
spring-mvc ×1
sqlite ×1