应用程序在调试模式下工作,但在显示java.lang.RuntimeException:Android的apk版本中崩溃
我知道这已经被问过好几次了,但我面临一个问题。 当我将设备连接到系统并运行我的应用程序时,它工作正常。 即使我正在生成调试apk并运行应用程序,它也可以正常工作 但是,在为应用程序发布生成签名的apk时,我收到以下错误:应用程序在调试模式下工作,但在显示java.lang.RuntimeException:Android的apk版本中崩溃,android,android-asynctask,Android,Android Asynctask,我知道这已经被问过好几次了,但我面临一个问题。 当我将设备连接到系统并运行我的应用程序时,它工作正常。 即使我正在生成调试apk并运行应用程序,它也可以正常工作 但是,在为应用程序发布生成签名的apk时,我收到以下错误: FATAL EXCEPTION: AsyncTask #5 Process: com.xxxx.xxxxx, PID: 8180 java.lang.RuntimeException: An error occurred while executing doInBackgrou
FATAL EXCEPTION: AsyncTask #5
Process: com.xxxx.xxxxx, PID: 8180
java.lang.RuntimeException: An error occurred while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:309)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
我不知道这个异常发生在哪里,为什么
拜托,有人能帮忙吗
我已经浏览了以下几个链接:
new BannerAdAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
我的异步任务是
// Checking banner ad and displaying the appropriate banner ad
class BannerAdAsyncTask extends AsyncTask<String, Boolean, Boolean> {
String addUserResponseCode;
String responseForAdduserRequest;
String msg;
/*
* (non-Javadoc)
*
* @see android.os.AsyncTask#onPreExecute()
*/
@Override
protected void onPreExecute() {
super.onPreExecute();
}
/*
* (non-Javadoc)
*
* @see android.os.AsyncTask#doInBackground(Params[])
*/
@Override
protected Boolean doInBackground(String... params) {
try {
String fetchBannerURL = context.getString(R.string.site_url)
+ "fetchbannerad.cfc?method=fetchbannerad";
responseForAdduserRequest = fetchContentFromServer(fetchBannerURL);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/*
* (non-Javadoc)
*
* @see android.os.AsyncTask#onPostExecute(java.lang.Object)
*/
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
try {
if (responseForAdduserRequest != null) {
// Parse JSON
JSONObject pages = new JSONObject(responseForAdduserRequest);
String d = pages.getString("DATA");
JSONArray dd = new JSONArray(d);
int len = dd.length();
for (int i = 0; i < dd.length(); i++) {
String p = dd.getString(i);
JSONArray values = new JSONArray(p);
adFileName = values.getString(6);
adLinkLocation = values.getString(7);
}
adBanner.setVisibility(View.VISIBLE);
adBanner.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// If the link location contains the companyid field,
// fetch the company id and navigate to the app's
// companies page with this id
if (adLinkLocation.contains("?companyid=")) {
int temp = adLinkLocation.indexOf("companyid=");
temp = temp + 10;
String companyid = adLinkLocation.substring(temp);
boolean isNumber = true;
try {
int id = Integer.parseInt(companyid);
} catch (NumberFormatException e) {
isNumber = false;
}
if (isNumber) {
Intent intent = new Intent(context,
CompanyProfile.class);
intent.putExtra("company_id",
Integer.parseInt(companyid));
// Get company branches as a cursor
final DataAdapter mDbHelper = new DataAdapter(
context);
mDbHelper.createDatabase();
mDbHelper.open();
intent.putExtra("branch_id", primaryBranchID);
intent.putExtra("com_name", name);
intent.putExtra("com_tradename", tradename);
intent.putExtra("com_desc", "");
intent.putExtra("main_branch_id",
primaryBranchID);
mDbHelper.close();
context.startActivity(intent);
}
} else {
// Otherwise load the link in browser
Intent intent = new Intent(
"android.intent.action.VIEW", Uri
.parse(adLinkLocation));
startActivity(intent);
}
}
});
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
在我的例子中,问题是在生成发布APK之后,我没有得到任何类型的服务器响应,而在调试APK的情况下,所有的服务器响应都很好 我在gradle文件中添加了以下行
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
请发布您的代码。@FarshidABZ请查看编辑后的问题。@devgeek尝试清理构建项目,然后重新生成已签名的apk。为什么该帖子被否决?@Rahulrr2602谢谢您的回复,但我已设法解决了我的问题。我会发布我的答案。
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}