首页 文章

应用程序在Android 6.0启动时崩溃,包括Logcat,新开发者

提问于
浏览
0

所以我对Java的经验很少,但我可以快速学习 . 在Marshmallow 6.0中启动应用程序时 . 它突然崩溃了 . 我可以从Android Studio中的logcat获取此信息

SKIP THE STRIKED TEXT AS ITS BEEN CORRECTED

E / AndroidRuntime:FATAL EXCEPTION:main E / AndroidRuntime:进程:nezibo.com.dreamception,PID:1863 E / AndroidRuntime:java.lang.RuntimeException:无法启动活动ComponentInfo {nezibo.com.dreamception / nezibo.com.dreamception .activity.MainActivity}:java.lang.NullPointerException:尝试获取空数组E / AndroidRuntime的长度:在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)E / AndroidRuntime:在android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476)E / AndroidRuntime:在android.app.ActivityThread.-wrap11(ActivityThread.java)E / AndroidRuntime:在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344)E / AndroidRuntime:在android.os.Handler.dispatchMessage(Handler.java:102)E / AndroidRuntime:在android.os.Looper.loop(Looper.java:148)E / AndroidRuntime:在android.app.ActivityThread.main(ActivityThread.java) :5417)E / AndroidRuntime:at java.lang.reflect.Method.invoke(Native Method)E / AndroidRuntime:at com.android . internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)E / AndroidRuntime:at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)E / AndroidRuntime:引起:java.lang . NullPointerException:尝试获取空数组E / AndroidRuntime的长度:在nezibo.com.dreamception.utils.FileUtils.removeTMPFiles(FileUtils.java:31)E / AndroidRuntime:at nezibo.com.dreamception.activity.MainActivity.init(MainActivity .java:186)E / AndroidRuntime:at nezibo.com.dreamception.activity.MainActivity.onCreate(MainActivity.java:64)E / AndroidRuntime:at android.app.Activity.performCreate(Activity.java:6237)E / AndroidRuntime :在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)E / AndroidRuntime:在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)E / AndroidRuntime:在android.app.ActivityThread.handleLaunchActivity(ActivityThread . java:2476)E / AndroidRuntime:在android.app.ActivityThread.-wrap11(ActivityThread.java)E / AndroidRuntime:at和roid.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344)E / AndroidRuntime:在android.os.Handler.dispatchMessage(Handler.java:102)E / AndroidRuntime:在android.os.Looper.loop(Looper . java:148)E / AndroidRuntime:在android.app.ActivityThread.main(ActivityThread.java:5417)E / AndroidRuntime:at java.lang.reflect.Method.invoke(Native Method)E / AndroidRuntime:at com.android . internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)E / AndroidRuntime:at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
CRASHLYTICS显示这个致命异常:java.lang.RuntimeException:无法启动活动ComponentInfo {nezibo.com.dreamception / nezibo.com.dreamception.activity.MainActivity}:java.lang.NullPointerException:尝试获取null数组的长度
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java)
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java)
在android.app.ActivityThread.-wrap11(ActivityThread.java)
在android.app.ActivityThread $ H.handleMessage(ActivityThread.java)
在android.os.Handler.dispatchMessage(Handler.java)
在android.os.Looper.loop(Looper.java)
在android.app.ActivityThread.main(ActivityThread.java)
在java.lang.reflect.Method.invoke(Method.java)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
由java.lang.NullPointerException引起:尝试获取null数组的长度
在nezibo.com.dreamception.utils.FileUtils.removeTMPFiles(FileUtils.java)
at nezibo.com.dreamception.activity.MainActivity.init(MainActivity.java)
at nezibo.com.dreamception.activity.MainActivity.onCreate(MainActivity.java)
在android.app.Activity.performCreate(Activity.java)
在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java)
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java)
在android.app.ActivityThread.-wrap11(ActivityThread.java)
在android.app.ActivityThread $ H.handleMessage(ActivityThread.java)
在android.os.Handler.dispatchMessage(Handler.java)
在android.os.Looper.loop(Looper.java)
在android.app.ActivityThread.main(ActivityThread.java)
在java.lang.reflect.Method.invoke(Method.java)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
FileUtils.java包nezibo.com.dreamception.utils;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.MediaScannerConnection;
import android.net.Uri;
进口android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.util.ArrayList;

import nezibo.com.dreamception.Dreamception;
import nezibo.com.dreamception.activity.FilterActivity;

import static android.support.v4.app.ActivityCompat.startActivityForResult;
公共类FileUtils {

public static void removeTMPFiles(Context context){
ArrayList <String> paths = new ArrayList <>();
File dir = new File(Dreamception.GALLERY_LOCATION);
for(文件文件:dir.listFiles()){
如果(file.getName() . 包含(FilterActivity.TEMP_FILE_MARKER)){
paths.add(file.getAbsolutePath());
file.delete();
}
}

String [] mStringArray = new String [paths.size()];
mStringArray = paths.toArray(mStringArray);
MediaScannerConnection.scanFile(context,mStringArray,null,new MediaScannerConnection.OnScanCompletedListener(){
/ *

  • /
    public void onScanCompleted(String path,Uri uri){
    Log.i(“ExternalStorage”,“Scanned”path“:”);
    Log.i(“ExternalStorage”,“ - > uri =”uri);
    }
    });
    }
    }
    上面的sniplet中的第31行(文件文件:dir.listFiles()){

Edit, So now This is what happens now I fixed the crash at launch, its becoming clear I need to change how permissions are being assigned for the new android.

11-03 04:43:43.541 9552-9552/nezibo.com.dreamception E/libcrashlytics: Failed to find any usable unwinding libraries on the device, falling back to simple unwinding
11-03 04:43:43.676 9552-9552/nezibo.com.dreamception E/ACRA: ACRA#init called but no ReportsCrashes annotation on Application nezibo.com.dreamception
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime: FATAL EXCEPTION: ModernAsyncTask #1
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime: Process: nezibo.com.dreamception, PID: 9552
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime: java.lang.RuntimeException: An error occurred while executing doInBackground()
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at android.support.v4.content.ModernAsyncTask$3.done(ModernAsyncTask.java:142)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at java.util.concurrent.FutureTask.run(FutureTask.java:242)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at java.lang.Thread.run(Thread.java:818)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:  Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=9552, uid=10059 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at android.os.Parcel.readException(Parcel.java:1599)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at android.content.ContentProviderProxy.query(ContentProviderNative.java:421)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at android.content.ContentResolver.query(ContentResolver.java:491)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at android.support.v4.content.ContentResolverCompatJellybean.query(ContentResolverCompatJellybean.java:29)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at android.support.v4.content.ContentResolverCompat$ContentResolverCompatImplJB.query(ContentResolverCompat.java:57)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at android.support.v4.content.ContentResolverCompat.query(ContentResolverCompat.java:125)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at android.support.v4.content.CursorLoader.loadInBackground(CursorLoader.java:59)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at android.support.v4.content.CursorLoader.loadInBackground(CursorLoader.java:37)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at android.support.v4.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:296)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at android.support.v4.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:54)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at android.support.v4.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:42)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at android.support.v4.content.ModernAsyncTask$2.call(ModernAsyncTask.java:128)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
11-03 04:45:07.230 9552-10585/nezibo.com.dreamception E/AndroidRuntime:     at java.lang.Thread.run(Thread.java:818) 
11-03 04:45:07.400 9552-9693/nezibo.com.dreamception E/Surface: getSlotFromBufferLocked: unknown buffer: 0xa1376b20
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread: Activity nezibo.com.dreamception.activity.MainActivity has leaked ServiceConnection nezibo.com.dreamception.activity.MainActivity$6@b5b5ae2 that was originally bound here
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread: android.app.ServiceConnectionLeaked: Activity nezibo.com.dreamception.activity.MainActivity has leaked ServiceConnection nezibo.com.dreamception.activity.MainActivity$6@b5b5ae2 that was originally bound here
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:1092)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:986)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1303)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at android.app.ContextImpl.bindService(ContextImpl.java:1286)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at android.content.ContextWrapper.bindService(ContextWrapper.java:604)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at nezibo.com.dreamception.activity.MainActivity.initBilling(MainActivity.java:274)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at nezibo.com.dreamception.activity.MainActivity.onCreate(MainActivity.java:62)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at android.app.Activity.performCreate(Activity.java:6237)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at android.app.ActivityThread.-wrap11(ActivityThread.java)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at android.os.Handler.dispatchMessage(Handler.java:102)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at android.os.Looper.loop(Looper.java:148)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at android.app.ActivityThread.main(ActivityThread.java:5417)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at java.lang.reflect.Method.invoke(Native Method)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
11-03 04:45:07.463 9552-9552/nezibo.com.dreamception E/ActivityThread:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
11-03 04:45:08.554 9552-9693/nezibo.com.dreamception E/Surface: getSlotFromBufferLocked: unknown buffer: 0xa1377ae0

Manifest permission request.

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<!-- Allows access to the flashlight -->
<permission
    android:name="android.permission.FLASHLIGHT"
    android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
    android:protectionLevel="normal" />

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

2 回答

  • 2

    您的代码中有 NullPointerException . 在这里发布 FileUtils.removeTMPFiles() 方法的代码,以便我们可以提出任何建议 .

    Caused by java.lang.NullPointerException: Attempt to get length of null array
      at nezibo.com.dreamception.utils.FileUtils.removeTMPFiles(FileUtils.java)
    

    建议的更改:

    ArrayList<String> paths = new ArrayList<>();
        File dir = new File(Dreamception.GALLERY_LOCATIONc);
        for(File file : dir.listFiles()){
    

    ArrayList<String> paths = new ArrayList<>();
        File dir = new File(Dreamception.GALLERY_LOCATION);
        if(!dir.exists())return;
        for(File file : dir.listFiles()){
    

    许可中的更改/请求的新代码

    if(!Settings.System.canWrite(this)) { 
        requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, 2909); 
    } else { 
        // continue with your code 
    }
    
  • 0

    你只需要阅读stacktrace:

    Caused by java.lang.NullPointerException: Attempt to get length of null array
        at nezibo.com.dreamception.utils.FileUtils.removeTMPFiles(FileUtils.java:31)
    

    因此,请检查第31行的FileUtils中数组可能为 null 的原因 .

相关问题