Приложение аварийно завершает работу после упаковки классов Java в пакетAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Приложение аварийно завершает работу после упаковки классов Java в пакет

Сообщение Anonymous »

Я пишу новое приложение, которое требует от пользователей предоставления разрешений. Мое приложение завершает работу и работает без сбоев, когда я помещаю все классы Java, включая MainActivity.java, в одну корневую папку (com.example.permission).
Затем я хочу объединить свои текущий проект с другим. Поскольку новая комбинация состоит из очень большого количества классов Java (более 10 классов Java), и ею будет очень беспорядочно и трудно управлять, если я просто помещу все классы Java в одну и ту же папку, я разделяю свои классы Java и разделяю их на несколько группируются по функциям.
Это исходная структура (всего состоит из 5 Java-классов)
Изображение

И это то, что я хочу реорганизовать (а позже я хочу ввести еще больше пакетов ):
Изображение

Вот мой MainActivity.java:

Код: Выделить всё

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
public void onRequestPermissionsResult(int requestCode,
@NonNull String[] permissions,
@NonNull int[] grantResults)
{
super.onRequestPermissionsResult(requestCode, permissions, grantResults);

OnPermissionsResult onPermissionResult = new OnPermissionsResult(MainActivity.this,MainActivity.this, requestCode,
permissions, grantResults);

onPermissionResult.onPermissionsResult();
}

@Override
protected void onStart()
{
super.onStart();
}

@Override
protected void onResume()
{
super.onResume();

// Re-check the permission grant when onResume().

if (ContextCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
{
CheckPermission checkPermission =
new CheckPermission(MainActivity.this, MainActivity.this);
checkPermission.askPermissionBox(new String[]{PERMISSION_CAMERA}, CAMERA);
}
}

Конечно, я переименовываю имена всех своих пакетов и делаю переменные общедоступными, если этого требует студия Android. Однако мое приложение по-прежнему сразу же аварийно завершает работу, когда я запускаю его в эмуляторе, и появляется сообщение об ошибке:

Код: Выделить всё

FATAL EXCEPTION: main
Process: com.example.permission, PID: 3291
java.lang.RuntimeException: Unable to resume activity {com.example.permission/com.example.permission.MainActivity}: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4962)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4995)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:229)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:205)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:177)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:98)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2443)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8177)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
at com.example.permission.permission.OnPermissionsResult.onPermissionsResult(OnPermissionsResult.java:49)
at com.example.permission.MainActivity.onRequestPermissionsResult(MainActivity.java:104)
at android.app.Activity.requestPermissions(Activity.java:5479)
at androidx.core.app.ActivityCompat$Api23Impl.requestPermissions(ActivityCompat.java:904)
at androidx.core.app.ActivityCompat.requestPermissions(ActivityCompat.java:545)
at com.example.permission.permission.CheckPermission.askPermissionBox(CheckPermission.java:171)
at com.example.permission.MainActivity.onResume(MainActivity.java:125)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1603)
at android.app.Activity.performResume(Activity.java:8743)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4952)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4995) 
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:229) 
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:205) 
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:177) 
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:98) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2443) 
at android.os.Handler.dispatchMessage(Handler.java:106) 
at android.os.Looper.loopOnce(Looper.java:205) 
at android.os.Looper.loop(Looper.java:294) 
at android.app.ActivityThread.main(ActivityThread.java:8177) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971) 
Я совершенно уверен, что не менял ни одной части сценария. В чем проблема и как ее решить?

Подробнее здесь: https://stackoverflow.com/questions/792 ... to-package
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»