【发布时间】:2019-07-24 17:22:40
【问题描述】:
当我在调试(通过 USB 的 ADB)中执行以下代码时,它可以工作,但是当我安装生成的版本 .apk 时,它会崩溃。更准确地说,以下代码崩溃了。
.replace(R.id.settings, new SettingsFragment())
这里是代码的完整版本。
public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings_activity);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.settings, new SettingsFragment())
.commit();
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
static class SettingsFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.root_preferences, rootKey);
}
}
}
我从 Google Play 中发现了一个错误,它说它抛出了一个 IllegalStateExcetion。我不知道任何其他检索错误消息的方法,因为它在调试模式下工作得非常好。
这是对应的 XML 文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/settings"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
【问题讨论】:
-
请添加LogCat中显示的消息。
-
使用 Fabric Crashlytics(现在为 Firebase Crashlytics)或其他一些 crashlytics api 在发布版本中获取 ccrash 报告。
-
请禁用即时运行,然后重试。是的,如果这不起作用,请发布您的
proguard-rules.pro文件。 -
@ReazMurshed 即时运行已禁用,现在出现异常。我的 proguard-rules.pro 文件都被注释掉了。
-
如果您的问题没有专门针对 IDE 本身,请不要使用
android-studio标签