- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 Android 中的 base64 文件上传中遇到异常。我在 Stackoverflow 中引用了很多线程,但没有帖子可以解决我的问题。请尽快帮我解决这个问题。
我在这里粘贴我的 logcat 错误
02-07 19:18:11.536: E/AndroidRuntime(14445): FATAL EXCEPTION: AsyncTask #1
02-07 19:18:11.536: E/AndroidRuntime(14445): Process: com.ipage.fieldexecutive, PID: 14445
02-07 19:18:11.536: E/AndroidRuntime(14445): java.lang.RuntimeException: An error occured while executing doInBackground()
02-07 19:18:11.536: E/AndroidRuntime(14445): at android.os.AsyncTask$3.done(AsyncTask.java:300)
02-07 19:18:11.536: E/AndroidRuntime(14445): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
02-07 19:18:11.536: E/AndroidRuntime(14445): at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
02-07 19:18:11.536: E/AndroidRuntime(14445): at java.util.concurrent.FutureTask.run(FutureTask.java:242)
02-07 19:18:11.536: E/AndroidRuntime(14445): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
02-07 19:18:11.536: E/AndroidRuntime(14445): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
02-07 19:18:11.536: E/AndroidRuntime(14445): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
02-07 19:18:11.536: E/AndroidRuntime(14445): at java.lang.Thread.run(Thread.java:841)
02-07 19:18:11.536: E/AndroidRuntime(14445): Caused by: java.lang.IllegalArgumentException: Illegal character in path at index 76: /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
02-07 19:18:11.536: E/AndroidRuntime(14445): AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB
02-07 19:18:11.536: E/AndroidRuntime(14445): AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCABiAGIDASIA
02-07 19:18:11.536: E/AndroidRuntime(14445): AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
02-07 19:18:11.536: E/AndroidRuntime(14445): AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
02-07 19:18:11.536: E/AndroidRuntime(14445): ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
02-07 19:18:11.536: E/AndroidRuntime(14445): p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
02-07 19:18:11.536: E/AndroidRuntime(14445): AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
02-07 19:18:11.536: E/AndroidRuntime(14445): BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
02-07 19:18:11.536: E/AndroidRuntime(14445): U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
02-07 19:18:11.536: E/AndroidRuntime(14445): uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+AAAn
02-07 19:18:11.536: E/AndroidRuntime(14445): p/nkjPf0/UdzVyCAkE89QfyJB7dOO/TI5JBpbeDqSPTHHPU5z7dPpzyDWxbwd8enb3/l/nOaA/r8
02-07 19:18:11.536: E/AndroidRuntime(14445): /Py/PXR3bb2+ATjnj9Cee/68ZI6kYratbY89f4fX/b9/88+hp9vanHIOeOMf7WOuP07eoPNdLYad
02-07 19:18:11.536: E/AndroidRuntime(14445): vVndgiDaM/xFvnxtU4JHABYcA55+WtaNGriKns6UXOVrvtGKvec29IwileUpNJK13rdxOcKcZTnJ
02-07 19:18:11.536: E/AndroidRuntime(14445): RjHRttfLr36fmtRmn2LzMyqPurvckgAIpfceTycc7epGcc8D6V/Zh8e+BPh38VNH1nxd4Jk8c7rq
02-07 19:18:11.536: E/AndroidRuntime(14445): 3s9HhS8uLP8A4R/VZLhTa+J3aFSJ005wHNtJ+7c5DE4Jr50PnRTC1RW/eSoFRAWMh3FRjb8x3Hoo
02-07 19:18:11.536: E/AndroidRuntime(14445): 5J7HjH278LPh/ongnwdf+NdVt/tuoXmnTXzPPEY5bTTzE3m2KpnIOYt/mMBICRjGDn6jDZbhMPhX
02-07 19:18:11.536: E/AndroidRuntime(14445): Gdq2JrU5qdZLmhT55KMYYdTg0pJJOVacXNTbjS5VGbl5U8ZVlUvGypwnBqL+1HVuUndXvo1Bact+
02-07 19:18:11.536: E/AndroidRuntime(14445): ZtaH2R4U+If7NVl8R/E2m+DtXvpPiV8avFV34Q8ZeKV0fVxYeE7DxBcMmoa5cSPB9hmgsJmErgyh
02-07 19:18:11.536: E/AndroidRuntime(14445): GUfeC7mr85/jD4H1X9n341eJfBfja307xJp97LPqeheINM1exuodY0W5vJhZau66dNOlpNdxJ5j2
02-07 19:18:11.536: E/AndroidRuntime(14445): MrCeIMA6AgmqFr8eo/A3hz4iN4b8u7h8d2Wq+Hm0eSFYm0yHUlcHWLfUCj3BuIQcJEpU8KfMDYNf
02-07 19:18:11.536: E/AndroidRuntime(14445): N+j2Wr63Z2kcc1xqGo/bR+9vLmaV/s+2QKhlneRo4t3TJ2gkcHBJ5MoqY3LMzhVpxhN0ppVoVqVK
02-07 19:18:11.536: E/AndroidRuntime(14445): rSlRk5q06daEqc6bS1TV72sk4s6MZOlisLKM6koucE4TpznTnFptpQlCfOpO90r/AMrs7pn2/wCC
02-07 19:18:11.536: E/AndroidRuntime(14445): Jvhf4jjkitbF2u0jV3TbdbY9zbR+8ZAjEFcbQ2Rz3znsbb4d6Xd3cr22sfZLfgrC0LYT55M4Zjz0
02-07 19:18:11.536: E/AndroidRuntime(14445): XHfqckk1g/D7wrB4Z0G2iG1rq4jWe4kCrkPKql4wwJ3KjL8rZ5B5BPTc8SeJLHwxpNxqF/HPLCiO
02-07 19:18:11.536: E/AndroidRuntime(14445): SttDLLIQpz9yEFyemPXkcnLD9Kq8T5FUwrpZrwLwzi8Fh4yquGX4ark2Prziptc2PwVaM0qjjrHk
02-07 19:18:11.536: E/AndroidRuntime(14445): cbtOzbbXydHK8wVZ/U+Icyw9WvOFP2mJqQxmHpRlNpy9hXg17trtqSlbS7szmYDpT3tjaabfC8XU
02-07 19:18:11.536: E/AndroidRuntime(14445): b2502ymkRoBLeWfmfaI2EmPLCCMlXc7X52sSa7OPTJraVreVD5iBC4XDKAfMwdwOMH5cHJ4I64Br
02-07 19:18:11.536: E/AndroidRuntime(14445): 6B1v9n3wx4++G2leLtAsofAOs6FbrrVvpVlMdQj157q3iXN1czOjWDzLI10+EJEpMWOXJ+bNI1DV
02-07 19:18:11.536: E/AndroidRuntime(14445): ZJLHS9avYtJn1S6vbC0nhliuzOdMdg4kyV8rCIGySSSQOoIH5rwvieGONKmYYOGFxWU51icXToZN
02-07 19:18:11.536: E/AndroidRuntime(14445): h8BNVcpp1qidOll+KhjsRVxMJV66glj/AO0J0qdOpJzw6VLmn99xLkef8IrB1sXUw2My6WG9rXxF
02-07 19:18:11.536: E/AndroidRuntime(14445): VuGKnCEnKpiqaowjG1Kmm5YeWGpzlJRcZyVRcvTC0fHAPQdP+Be31/Xk9ipv+Eg0KLMT3Jd4z5bN
02-07 19:18:11.536: E/AndroidRuntime(14445): tX5mRpFZuHI+YrnjjGeTiivnppwnOEk1KEpQkrN+9GUovVLXWP4rV6siLUoqS2aTXo1K34R/Fdbn
02-07 19:18:11.536: E/AndroidRuntime(14445): 5L29vk9OmP5n2+vfHoRjI3rW29v7v/s3+f8ADHG74S8I654v8QaT4X8Oabc6rrOt6hZabp1lZ289
02-07 19:18:11.536: E/AndroidRuntime(14445): xNNdXlyttDmO3imkWMSOhlk2ERpudsha/TL9tb/gmj8Vv+CeXgX9m/X/AI+xw2njL9oLQtb1zQ/C
02-07 19:18:11.536: E/AndroidRuntime(14445): tleW+pWFpaaPfWltKbqeG2tbqzm2XsUiRXURZmLhTtXNbYWg8XiKOHjKNN1ZxhzzvyxTbTk7Jt2V
02-07 19:18:11.536: E/AndroidRuntime(14445): moxTnJtxinJWacrQcrN8qvZ2TfxLvZXsr30V1rpJnwD4Q+HfiLxXZ6jf6Zax/Y9MUm5nuZRboWWJ
02-07 19:18:11.536: E/AndroidRuntime(14445): pUSNpF2uZFQgBW3FiFAya5hrfU4rp1mtZ1ETbY4xDKY4l3PlY3CDcpPzbjk8kZ4bP2TLewaH4H8P
02-07 19:18:11.536: E/AndroidRuntime(14445): eF9K220t1bLceJbWM7Q2owXUhtGkBZi5EDrgnaQuPl+UE4unWkd/PHFLAkjSOkXzZ2ne5U7myAF6
02-07 19:18:11.536: E/AndroidRuntime(14445): ZPQDrzmv2jKuDMsllNKjSx8qOLqONTF1qlFSdeTa5KSgqilSoUZfw4qUnOSVaqnPkjH4jG57W9rW
02-07 19:18:11.536: E/AndroidRuntime(14445): UqMXSi7QjzNSjyuSbd/icnG70VleKlZtv558OxCXxJ4ZklU7l1zTEYMvJX7WCUZT2bH1wTkkjNfo
02-07 19:18:11.536: E/AndroidRuntime(14445): /wCOVj/4QvxcqIEjGhahtRRgKPIkHABHTk47ZPOS1eH6p8MtPgutONhZ2SXguIJkuIXBnS/SU+R5
02-07 19:18:11.536: E/AndroidRuntime(14445): ADt5nOwhsMQcDBOa+lNe+F3i23+FWpXmranbG41XSZ45n1S/tbVo
还有我的异步任务类
public class AddShopTask extends AsyncTask<String, Void, String> {
private ProgressDialog pDialog1;
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog1 = new ProgressDialog(AddShopActivity.this);
pDialog1.setMessage(getString(R.string.ip_updating_the_server));
pDialog1.setIndeterminate(false);
pDialog1.setCancelable(false);
pDialog1.show();
}
@Override
protected String doInBackground(String... params) {
String shopName = mShopNameEditText.getText().toString();
String shopDescription = mShopServiceDescription.getText().toString();
String landMark = mShopAddress.getText().toString();
String userType = "2";
String shopMobileNo = mShopMobileNumber.getText().toString();
String shopEmailId = mShopEmailId.getText().toString();
String shopPicture = encodeImageToB64Format();
String createdOn = String.valueOf(System.currentTimeMillis());
return HttpConnectionUtils.getAddShopResponse(shopName, shopPicture, landMark,
mShopCityName, shopMobileNo, shopEmailId, shopDescription, "paymentDetails",
createdOn, "78.37492398", "87.238829323", userType, shopPicture);
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
pDialog1.dismiss();
if (result != null && !result.trim().equals("")) {
try {
JSONObject loginResponseObj = new JSONObject(result);
String loginState = loginResponseObj.getString("result");
if (loginState.equals("success")) {
Toast.makeText(AddShopActivity.this, "Shop Added Successfully",
Toast.LENGTH_LONG).show();
finish();
} else {
iPreferenceUtils.clearAllPreferences(AddShopActivity.this);
Intent intent = new Intent(AddShopActivity.this, LoginActivity.class);
startActivity(intent);
finish();
}
} catch (Exception e) {
}
} else {
Crouton.makeText(AddShopActivity.this, R.string.err_check_your_connection,
Style.ALERT).show();
}
}
}
private String encodeImageToB64Format() {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
profilePhoto.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageByte = baos.toByteArray();
String encodeShopImage = Base64.encodeToString(imageByte, Base64.NO_PADDING);
return encodeShopImage;
}
最佳答案
位置 76 听起来像是行尾 - 而且几乎是。 Base64 文本通常被分成少于 80 个字符的行,从而添加换行符。对于某些解码器,首先必须删除\r 和\n。
String encodeShopImage = Base64.encodeToString(imageByte,
Base64.NO_PADDING|Base64.NO_WRAP);
填充导致尾随填充符,如“---”,换行导致行尾。
或
return encodeShopImage.replaceAll("[^A-Za-z0-9/+]", "");
粗略地删除所有非 Base64 字符。
关于java - Android中Base64文件上传IllegalArgument异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21629652/
问题很简单:我正在寻找一种优雅的使用方式 CompletableFuture#exceptionally与 CompletableFuture#supplyAsync 一起.这是行不通的: priva
对于 Web 服务,我们通常使用 maven-jaxb2-plugin 生成 java bean,并在 Spring 中使用 JAXB2 编码。我想知道如何处理 WSDL/XSD 中声明的(SOAP-
这个问题已经有答案了: Array index out of bound behavior (10 个回答) 已关闭 8 年前。 我对下面的 C 代码感到好奇 int main(){
当在类的开头使用上下文和资源初始化 MediaPlayer 对象时,它会抛出 NullPointer 异常,但是当在类的开头声明它时(因此它是 null),然后以相同的方式初始化它在onCreate方
嘿 我尝试将 java 程序连接到 REST API。 使用相同的代码部分,我在 Java 6 中遇到了 Java 异常,并且在 Java 8 中运行良好。 环境相同: 信任 机器 unix 用户 代
我正在尝试使用 Flume 和 Hive 进行 Twitter 分析。为了从 twitter 获取推文,我在 flume.conf 文件中设置了所有必需的参数(consumerKey、consumer
我在 JavaFX 异常方面遇到一些问题。我的项目在我的 Eclipse 中运行,但现在我的 friend 也尝试访问该项目。我们已共享并直接保存到保管箱文件夹中。但他根本无法让它发挥作用。他在控制台
假设我使用 blur() 事件验证了电子邮件 ID,我正在这样做: $('#email').blur(function(){ //make ajax call , check if dupli
我这样做是为了从 C 代码调用非托管函数。 pCallback 是一个函数指针,因此在托管端是一个委托(delegate)。 [DllImport("MyDLL.dll")] public stati
为什么这段代码是正确的: try { } catch(ArrayOutOfBoundsException e) {} 这是错误的: try { } catch(IOException e) {} 这段
我遇到了以下问题:有导出函数的DLL。 代码示例如下:[动态链接库] __declspec(dllexport) int openDevice(int,void**) [应用] 开发者.h: __de
从其他线程,我知道我们不应该在析构函数中抛出异常!但是对于下面的例子,它确实有效。这是否意味着我们只能在一个实例的析构函数中抛出异常?我们应该如何理解这个代码示例! #include using n
为什么需要异常 引出 public static void main(String[
1. Java的异常机制 Throwable类是Java异常类型的顶层父类,一个对象只有是 Throwable 类的(直接或者间接)实例,他才是一个异常对象,才能被异常处理机制识别。JDK中内
我是 Python 的新手,我对某种异常方法的实现有疑问。这是代码(缩写): class OurException(Exception): """User defined Exception"
我已经创建了以下模式来表示用户和一组线程之间的关联,这些线程按他们的最后一条消息排序(用户已经阅读了哪些线程,哪些没有): CREATE TABLE table(user_id bigint, mes
我正在使用 Python 编写一个简单的自动化脚本,它可能会在多个位置引发异常。在他们每个人中,我都想记录一条特定的消息并退出程序。为此,我在捕获异常并处理它(执行特定的日志记录操作等)后引发 Sys
谁能解释一下为什么这会导致错误: let xs = [| "Mary"; "Mungo"; "Midge" |] Array.iter printfn xs 虽然不是这样: Array.iter pr
在我使用 Play! 的网站上,我有一个管理部分。所有 Admin Controller 都有一个 @With 和一个 @Check 注释。 断开连接后,一切正常。连接后,每次加载页面(任何页面,无论
我尝试连接到 azure 表存储并添加一个对象。它在本地主机上工作得很好,但是在我使用的服务器上我得到以下异常及其内部异常: Exception of type 'Microsoft.Wind
我是一名优秀的程序员,十分优秀!