我昨天在我的应用程序工作时去睡觉,今天当我试图运行它时根本无法启动.一旦我尝试打开它就会崩溃java.lang.IllegalStateException
.我已经在我的代码中提交了几个提交,只是为了排除这是我最近做过的事情.这没有任何意义,应用程序如何才能停止工作一夜?我在互联网上寻找错误,并没有很多有用的信息.这真的是一个奇怪的错误吗?
这是完整的堆栈跟踪:
E/AndroidRuntime:FATAL EXCEPTION:main java.lang.IllegalStateException:AssetManager已经完成!在android.app.Parcel.readException(Parcel.java:1439)的android.app.Aar开发.事件(Partcel.java:1449),android.app.A活动.ProartA活动(ActivityManagerNative.java:1947). Instrumentation.execStartActivity(Instrumentation.java:1419)位于android.app.Activity.startActivityForResult(Activity.java:3390)的android.app.Activity.startActivity(Activity.java:3583),位于com.android.launcher2.Launcher.startActivity (Launcher.java:2442)com.android.launcher2.Launcher.startActivitySafely(Launcher.java:2469)at com.android.launcher2.AppsCustomizePagedView.onClick(AppsCustomizePagedView.java:584)at android.view.View.performClick( View.java:4240)在android.view.Handler.dispatchMessage(Handler.java)的android.view.View $ PerformClick.run(View.java:17721)android.os.Handler.handleCallback(Handler.java:730) :92)在android.app.Looper.loop(Looper.java:137)的android.app.ActivityThread.main(ActivityThread.java:5136)at java.lang.reflect.Method.invokeNative(Native Method)at j com.android.internal.os.ZygoteInit.main中的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737)中的ava.lang.reflect.Method.invoke(Method.java:525) ZygoteInit.java:553)at dalvik.system.NativeStart.main(Native Method)
因为就像我说它似乎不是我所做的任何事情我不确定要发布什么代码.但是考虑到应用程序崩溃,这里是应该首先启动的两个主要类的代码:
应用
public class App extends Application {
private static App instance;
private static final String TAG = "Starter";
@Override
public void onCreate() {
super.onCreate();
instance = this;
// Enable Local Datastore.
Parse.enableLocalDatastore(this);
//TODO: Register subclasses
// ParseObject.registerSubclass(Challenge.class);
//Parse server
Log.d(TAG, "Initializing Parse");
Parse.initialize(new Parse.Configuration.Builder(this)
.applicationId(getString(R.string.parse_app_id))
.clientKey(getString(R.string.parse_client_key))
.server(getString(R.string.server_address)).build()
);
//Facebook
if (AccessToken.getCurrentAccessToken() == null)
ParseFacebookUtils.initialize(this);
ParseUser.enableAutomaticUser(); …
Run Code Online (Sandbox Code Playgroud) 我有一份崩溃报告指出,IndexOutOfBoundsException
但我不知道是什么原因导致的,因为堆栈中没有我的代码中的任何内容。这是堆栈:
Fatal Exception: java.lang.IndexOutOfBoundsException: setSpan (34 ... 48) ends beyond length 34
at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1265)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:684)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:677)
at android.widget.Editor$SuggestionsPopupWindow.updateSuggestions(Editor.java:3980)
at android.widget.Editor$SuggestionsPopupWindow.show(Editor.java:3833)
at android.widget.Editor.replace(Editor.java:435)
at android.widget.Editor$3.run(Editor.java:2359)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)
Run Code Online (Sandbox Code Playgroud)
我发现的唯一与我的问题类似的事情是这个,但那家伙无法解决它。
我怎样才能知道是什么原因造成的,以便寻找解决方案?
编辑
好的,我发现在我的大型代码的多个部分中正在使用此函数:
public static Spannable spannabletext(String message, int start, int end, String font_family, Typeface font) {
Spannable spannable = new SpannableString(Html.fromHtml(message));
spannable.setSpan(new CustomTypefaceSpan(font_family, font),
start, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
return spannable;
}
Run Code Online (Sandbox Code Playgroud)
所以我猜测在某些时候这就是问题的根源。但由于我不想花几个小时试图猜测哪个文本和哪种语言(我的应用程序有 8 种不同的语言)是生成此崩溃的,所以我要等到它再次发生,但这次我添加了一些Crashlytics …
我正在尝试使用 ubuntu 在 EC2 t2.medium 实例上运行 Android 模拟器。当我尝试运行这个时:
/home/ubuntu/tools/android-sdk/tools/emulator -engine classic -ports 5724,5725 -report-console tcp:5854,max=60 -avd Samsung_Galaxy_S4_Mini_API_19 -no-snapshot-load -no-snapshot-save -no-window
Run Code Online (Sandbox Code Playgroud)
我得到:
sh:1:glxinfo:找不到模拟器:警告:忽略无效的SDCard路径:/Users/danielsierraf/.android/avd/Samsung_Galaxy_S4_Mini_API_19.avd/sdcard.img sh:1:glxinfo:找不到模拟器:警告:经典qemu没有支持SMP。配置文件中的 hw.cpu.ncore 选项将被忽略。模拟器:错误:x86 模拟当前需要硬件加速!请确保 KVM 已正确安装并可用。CPU加速状态:KVM需要支持vmx或svm的CPU
所以我尝试:
sudo /usr/sbin/kvm-ok
Run Code Online (Sandbox Code Playgroud)
INFO: 您的CPU不支持KVM扩展 无法使用KVM加速
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
Run Code Online (Sandbox Code Playgroud)
我在互联网上读到一些有关在 BIOS 中启用虚拟化的内容。但我不能在 EC2 上这样做,不是吗?我这真的是解决方案吗?
我正在尝试检测图像链接中文本的倾斜角度。问题是这篇文章是用 C++ 编写的,我在将某些内容转换为 Java 时遇到了麻烦。
我做了休变换的实现。我在这篇文章(1) 中指导我的大部分 Java 转换。但它不能正常工作。当应该给出 15.9882 的角度时,给出的角度为 0.27919363。这是我正在使用的图像。
这是我的代码:
public double compute_skew1(String filename){
Log.d(TAG, "Computing skew 1");
Mat src = Highgui.imread(filename, 0);
Size size = src.size();
//double minLineSize = 20;
double minLineSize = src.width() / 2.f;
Core.bitwise_not(src, src);
Mat lines = new Mat();
double angle = 0.;
try {
Imgproc.HoughLinesP(src, lines, 1, Math.PI / 180, 100, minLineSize, 20);
Mat disp_lines = new Mat(size, CvType.CV_8UC1, new Scalar(0, 0, 0));
int nb_lines …
Run Code Online (Sandbox Code Playgroud)