有时,当我运行我的应用程序时,它会给我一个错误,如下所示:
Exception in thread "main" java.lang.NullPointerException
at com.example.myproject.Book.getTitle(Book.java:16)
at com.example.myproject.Author.getBookTitles(Author.java:25)
at com.example.myproject.Bootstrap.main(Bootstrap.java:14)
Run Code Online (Sandbox Code Playgroud)
人们将此称为"堆栈跟踪".什么是堆栈跟踪?有什么能告诉我程序中发生的错误?
关于这个问题 - 我经常看到一个问题,一个新手程序员"得到一个错误",他们只是粘贴他们的堆栈跟踪和一些随机的代码块,而不了解堆栈跟踪是什么或如何使用它.这个问题旨在作为新手程序员的参考,他们可能需要帮助来理解堆栈跟踪的价值.
什么是空指针异常(java.lang.NullPointerException)以及它们的原因是什么?
可以使用哪些方法/工具来确定原因,以便停止异常导致程序过早终止?
我想使用新的Multidex支持库来打破我的某个应用程序的方法限制.
借助Android Lollipop,Google推出了一个multidex支持库,可以轻松实现多索引.
使用此库需要哪些步骤以及使用multidex支持构建我的应用程序?
美好的一天.我有非常奇怪的情况.应用程序崩溃在某些点,但不是因为它通常会崩溃.应用程序回到以前的活动或完全退出应用程序,而不显示对话框"UNFORTUNATALLY APP CLOSED"和Android工作室没有给出任何异常log.T这个行为我假设是一个崩溃......这发生在几个设备上,这是huaweu p8 lite与棒棒糖版本(默认kitkat)和索尼xperia z与棒棒糖版本(默认4.2.2).我无法调试在所有的应用程序和崩溃在所有...在其他设备上的应用程序不会崩溃或重启不会不会或退出,所以我不知道什么是错用它...请你能帮助我吗?
构建gradle文件,这可能是奇怪的"崩溃"的选项
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.19.2'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
maven {
url 'https://maven.fabric.io/public'
}
maven {
url 'https://github.com/suckgamony/RapidDecoder/raw/master/repository'
}
maven {
url 'https://dl.bintray.com/intercom/intercom-maven'
}
}
android {
compileSdkVersion 22
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.sparklingzoo.framkalla"
minSdkVersion 15
targetSdkVersion 22
versionCode 303
versionName "3.0.3"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies { …Run Code Online (Sandbox Code Playgroud) 我的Android应用程序可能会将logcat日志保存到文件中.然后将此日志文件发送给开发人员进行分析.
是否有一个很好的桌面 android日志查看器应用程序,可以显示这些日志?
我无法在Android SDK中找到随时可用的工具.也许我错过了那里的东西?
我正在使用工具栏来替换ActionBar.一切都很顺利,有一个问题:
工具栏仅显示主要活动.
如果我尝试使用与主活动相同的方式调用任何活动上的工具栏,则在调用该活动时应用程序将崩溃.
如果我尝试对onCreateOptionsMenu上的工具栏进行充气,那么当我调用它时该活动就会崩溃.
如何在我的所有活动中调用/使用相同的工具栏,而不仅仅是主要的活动.
这里是一些代码:
public android.support.v7.widget.Toolbar toolbar;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.app_bar_id);
setSupportActionBar(toolbar);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码可以成功调用工具栏,但只有在主活动上使用它时它才有效,如果我用上面显示的相同方法调用工具栏,其余的活动都会崩溃.
有些帮助吗?
谢谢.
编辑:
根据请求,这里有更多代码片段:
app_bar.xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/actionbarbgcolor"
app:popupTheme="@style/popUpTheme">
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)
themes.xml(styles.xml替换):
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="DefaultActionBarTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:textColorPrimary">@color/windowbackgroundcolor</item>
<item name="android:windowBackground">@color/windowbackgroundcolor</item>
</style>
<style name="popUpTheme">
<item name="android:textColor">@color/actionbarbgcolor</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud) 每隔一段时间我就得到:
不幸的是,MyApp已经停止了.
如果您有一些日志,问题很容易解决,但在我的情况下,logcat绝对没有错误消息(它有我的应用程序发布的正常消息,其他异常显示在那里但不是这导致这个app has stopped).
我有没有机会解决这个问题?
好处是我可以很容易地重现它,因此我试图将尽可能多的信息放入logcat然后调查发生了什么.
我已经启动并运行了ACRA(其他例外是由它捕获但不是这个app has stopped).
当它发生时我的应用程序不可见,并且在IntentService中有一些事情发生.我的应用程序正在跟踪地理围栏,app has stopped当我在手机设置中打开和关闭位置时,仅在HTC M8上发生.我已经在不同的手机上进行了测试,并且不会发生在LG G3,Nexus 5,Moto G,LG Swift L9上.
我对android很新,我正在创建一个有两个微调器的活动,这些微调器从两个单独的API调用接收到的JSONObjects中填充它们的下拉项.出于某种原因,我收到此错误.我不知道为什么我收到此错误或如何解决它.任何人都可以对此有所了解吗?任何帮助将不胜感激!!!这是我的代码:
public class AddPropertyActivity extends AppCompatActivity {
private TextView selectCity;
private static final String TAG = RegisterUserActivity.class.getSimpleName();
private JSONObject jsonObject;
private JSONArray jsonArray;
private ProgressDialog mProgressDialog;
private MyProperty mMyProperty;
private ArrayList<City> cities = new ArrayList<City>();
private ArrayList<City> locations = new ArrayList<City>();
private ArrayList<String> cityNames = new ArrayList<String>();
private ArrayList<String> locationNames = new ArrayList<String>();
private String selectedCity="lahore";
private String selectedLocation="";
private int count=0;
private Spinner citySpinner;
private Spinner locationSpinner;
private DownloadJSON task1;
private DownloadJSON task2;
@Override
protected void onCreate(Bundle savedInstanceState) { …Run Code Online (Sandbox Code Playgroud) 我真的不知道我正在构建的Android应用程序发生了什么.在它开发的某个时刻,我开始在模拟器中启动它,并显示消息"Foo stopped".这是错误日志,如果有人可以帮助我:
07-05 21:13:30.063 7647-7647/root.fazerumsom E/AndroidRuntime? FATAL EXCEPTION: main
Process: root.fazerumsom, PID: 7647
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{root.fazerumsom/root.fazerumsom.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.content.ContextWrapper.getResources(ContextWrapper.java:89)
at android.view.ContextThemeWrapper.getResources(ContextThemeWrapper.java:78)
at root.fazerumsom.MainActivity.<init>(MainActivity.java:31)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1208)
at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2101)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at …Run Code Online (Sandbox Code Playgroud) 我做了一个简单PreferenceScreen的多重Preference Categorys和CheckBoxPreferences.
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="General">
<CheckBoxPreference
android:title="GPS"
android:key="gps_preference"
android:summary="Enales the GPS tracking of your device"
android:defaultValue="true"
></CheckBoxPreference>
<SwitchPreference
android:title="WLAN"
android:key="wlan_preference"
android:summary="Enables the WLAN usage"
android:defaultValue="true"></SwitchPreference>
<CheckBoxPreference
android:title="Benachrichtigungen"
android:key="benachrichtigung_preference"
android:summary="Enables the Push messages"
android:defaultValue="true"
></CheckBoxPreference>
</PreferenceCategory>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
此首选项屏幕位于a android.support.v7.preference.PreferenceFragmentCompat.如果我像往常一样离开,那一切都很好.
但是,如果我想转出一个CheckBoxPreference的SwitchPreference(应该通过简单地切换出来的XML标记的工作CheckBoxPreference与SwitchPreference我得到我的渲染错误)design标签:
渲染期间引发异常:android.preference.CheckBoxPreference无法强制转换为android.preference.GenericInflater $ Parent
堆栈跟踪:
android.view.InflateException: Binary XML file line #15: Error inflating class (not found)SwitchPreference
at android.support.v7.preference.PreferenceInflater.createItemFromTag(PreferenceInflater.java:301)
at android.support.v7.preference.PreferenceInflater.rInflate(PreferenceInflater.java:359)
at android.support.v7.preference.PreferenceInflater.rInflate(PreferenceInflater.java:361)
at android.support.v7.preference.PreferenceInflater.inflate(PreferenceInflater.java:167) …Run Code Online (Sandbox Code Playgroud) android ×8
java ×3
acra ×1
crash ×1
debugging ×1
exception ×1
gradle ×1
log-viewer ×1
logcat ×1
logging ×1
stack-trace ×1
toolbar ×1
ziparchive ×1