我正在使用Crashlytics,致命的崩溃得到了传递.但是数据添加了
Crashlytics.log(mytext);
Run Code Online (Sandbox Code Playgroud)
没有在Fabric Dashboard中显示任何内容.
我无法找到文档中必要设置或配置的任何提示.我错过了什么?
我开始本地化我的应用程序,但我遇到的问题是我看到英语设置两次作为开发语言.不知道为什么会发生这种情况,如果我担心的话.

Gradle Build 过去每次运行 5-10 分钟,所以我在 SO 和其他地方做了所有我能找到的事情:即时运行、Multidex、--offline,...这将其时间缩短到了 10-20 秒。这远非优秀,但在某种程度上可以接受。(尽管与 XCode 相比,这是相当丢脸的。)
但是使用 AS 在设备上调试仍然非常慢。每次点击任何东西都会让 AS 在大约 5-10 秒后做出反应。全局执行时间至少比发布运行慢 10 倍(如果不是更多)。我找不到太多关于如何加快调试模式下运行的信息。
所以,我的问题实际上是:有没有人成功地在 Android Studio 的调试模式下获得可接受的执行时间以及需要做什么才能实现它?
使用ViewTreeObserver时遇到很大困难.一切都在一段不可预测的时间内正常工作,然后听众就不再运作了.肯定是因为文档中写的内容:返回的ViewTreeObserver观察器不保证在此视图的生命周期内保持有效. 因此,每次更改视图时,我都会重做设置:
protected void shrinkToFit(final TextView t) {
if(vto==null||!vto.isAlive()){
vto = t.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {
doAdjust(t);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
这是我如何调用它:
TextView t = (TextView) findViewById(R.id.maindesc);
t.setTextSize(Constants.MAINDESC_SIZE);
String todisp_1 = tarifreadtemp.area_desc + ":"
+ tarifreadtemp.area_tarifuserdesc;
shrinkToFit(t);
t.setText(todisp_1);
t.invalidate();
Run Code Online (Sandbox Code Playgroud) 我在应用程序启动时独家崩溃,仅在模拟器和调试中
模拟器和运行:好的
设备和运行:好的
设备和调试:好的
模拟器和调试:CRASH!
看起来Android正试图在发布时做一个Toast,因为我没有很多Toast并且在所有这些上添加了断点,我可以排除它是我的一个.
有没有办法找出Android试图显示的消息以及它所指的Activity?在崩溃发生之前,Logcat没有显示任何异常.
android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@e4f4f2b is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:679)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:342)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
at android.widget.Toast$TN.handleShow(Toast.java:459)
at android.widget.Toast$TN$2.handleMessage(Toast.java:342)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Run Code Online (Sandbox Code Playgroud) 每当我运行我的应用程序(设备或仿真器是相同的)时,即使不对代码进行任何更改,我从最大的Activity中获得的每个方法都如下:
W/art: Verification of void com.xyz.abx.setCredit(boolean) took 343.200ms
Run Code Online (Sandbox Code Playgroud)
由于应用程序很大,因此每次都要花几分钟时间,这确实使我发疯。奇怪的是,它对其他所有较小的活动都没有执行此操作。我有
android:vmSafeMode="true"
Run Code Online (Sandbox Code Playgroud)
在清单中按照SO线程中的建议进行操作,但无济于事。我已阅读此主题
艺术:X的验证花了Y毫秒, 然后阅读了以下文档:https : //developer.android.com/guide/practices/verifying-apps-art
我对在我向用户显示之前需要解码的html文本感到困惑.我做:
result= Html.fromHtml(temp).toString();
Run Code Online (Sandbox Code Playgroud)
其中temp包含类似:"B\M碰撞修复".但是,结果与执行后的temp完全相同.我在这里错过了什么?
我已阅读有关此问题的SO主题,我已添加
classpath 'com.google.gms:google-services:3.2.1'
Run Code Online (Sandbox Code Playgroud)
build.gradle,但它没有帮助.这里是完整的gradle:
buildscript {
repositories {
maven {
url 'https://maven.fabric.io/public'
}
mavenCentral()
jcenter()
google()
}
dependencies {
classpath 'io.fabric.tools:gradle:1.26.1'
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.google.gms:google-services:3.2.1'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
maven { url "https://jitpack.io" }
maven { url 'https://maven.fabric.io/public' }
maven {
url uri('mint-plugin-repo-5.2.4')
}
google()
}
android {
flavorDimensions "default"
signingConfigs {
config {
keyAlias 'xxx'
keyPassword 'xxx'
storeFile file('/Users/claude/Documents/xxx')
storePassword 'xxx'
}
}
compileSdkVersion 28
defaultConfig {
targetSdkVersion 28
multiDexEnabled true
vectorDrawables.useSupportLibrary = …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚为什么我在下面的代码上得到编译错误:
package com....;
public enum Something { //says error: <identifier> expected on this line
private String myInput;
public Something(String paramString) {
this.myInput = paramString;
}
public String getInputName() {
return this.myInput;
}
}
Run Code Online (Sandbox Code Playgroud) 我在layout-normal-land和layout-normal-port文件夹中有替代布局,如果我在启动时将设备放在陆地或端口,系统会正确调用它们.我的问题是,当我启动应用程序后旋转设备时,它会尝试以某种方式使已经显示的视图适应新的情况,造成混乱.如何告诉系统它应该在执行期间切换到备用布局?
一直在试验,发现当我没有android:configChanges ="keyboardHidden | orientation"时,再次调用oncreate,这给出了正确的布局,但它不是我想要的.我不认为这是正常的,是吗?也许是Android中的错误问题(2.3.3.)?
在String上进行拆分时遇到一个非常奇怪的问题.崩溃的代码的第二行崩溃:
String[] parts1 = "2 xy 3".split("xy"); //OK!
String[] parts2 = "2 ** 3".split("**"); //CRASHES java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 1: **
Run Code Online (Sandbox Code Playgroud) android ×8
java ×4
build.gradle ×1
crash ×1
crashlytics ×1
debugging ×1
decode ×1
dex ×1
html ×1
launch ×1
localization ×1
split ×1
string ×1
xcode ×1