App RunTimeException; как отлаживать, когда игровая консоль бесполезна - PullRequest
0 голосов
/ 12 января 2020

Я занимаюсь разработкой приложения для камеры, и пока оно работает на моем телефоне (когда Studio загружает apk через adb), один из друзей скачал его для тестирования из Google Play Store и сказал, что продолжает получать сообщения об ошибках и сразу падает.

Прежде чем попросить его проверить его, я загрузил файл деобфускации последнего выпуска в консоль, но все, что он говорит, это следующее на странице cra sh в консоли Google:

java.lang.RuntimeException:  
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3122)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3261) 
  at android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:78) 
  at android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:108)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:68)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1977)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loop (Looper.java:193)
  at android.app.ActivityThread.main (ActivityThread.java:6923)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493) 
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:870)

Я выполнил поиск звонков, упомянутых выше, на Stackoverflow и других сайтах, но они не помогают решить проблему.

Я думал, что проблема может быть вызвана декларация об ориентации; Я указал оба «ландшафта» в своем манифесте и в MainActivity; Глядя на комментарии людей о StackOverflow, было предложено удалить код ландшафта из OnCreate (поэтому он закомментирован во фрагменте ниже).

Прежде чем я удалил строку, мой друг сказал, что приложение будет разбомблено немедленно. Теперь он говорит, что быстро получает «fla sh» приложения, прежде чем он получает сообщение об ошибке. Кроме того, приложение не запрашивает у пользователя разрешения на доступ к камере и файловой системе, что заставляет меня думать, что ошибка возникает между началом объявления OnCreate и проверкой разрешений. Но единственные вызовы - это суперкласс и setContentView. Кто-нибудь может помочь? Тот факт, что он работает на моем телефоне (Android 6), а не на его (Android 9), может быть подсказкой, но отсутствие чего-либо значимого сводит меня с ума. Заранее спасибо

Фрагмент OnCreate от MainActivity:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    setContentView(R.layout.activity_main);

    if( (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
            || (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED))
    {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSION_ALL);
    }

    if(ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
    {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, PERMISSION_ALL);

    }

Остальная часть функции просто настраивает кнопки и щелкает слушателей и т. Д. c. Единственное, что нужно, это то, что вычисляет размер cameraView, чтобы поверх него были размещены наложения правильного размера. Я сделал что-то подобное в других приложениях без проблем, что заставляет меня думать, что это не причина.

Файл My Manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xxx.tan">

<uses-permission android:name="android.permission.CAMERA"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<uses-feature android:name="android.hardware.camera2.full" android:required="false"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    >
    <activity android:name=".MainActivity" 
        android:screenOrientation="landscape"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout">

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <uses-library android:name="org.apache.http.legacy" android:required="false"/>

</application>

</manifest>

Файл My Layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="1"
>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/frlayout"
    android:layout_weight="0.82"
    android:layout_width="match_parent"
        android:layout_height="0dp">
            <TextureView
            android:id="@+id/cameraView"
                android:background="@android:color/transparent"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
             />
    </FrameLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="0.07"
    android:orientation="horizontal"
    android:gravity="center"
    android:id="@+id/seekbarView">
<SeekBar
    android:id="@+id/seekBar"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="0.07"
    android:progress="1000"
    android:max="2000"
    />
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.11"
android:background="#004D79"
android:orientation="horizontal"
    android:id="@+id/controlView">
    <ImageButton
        android:src="@drawable/findfile"
        android:background="@android:color/transparent"
        android:layout_margin="3dp"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        android:id="@+id/ofbutton" />
<View
android:layout_width="3dp"
android:layout_height="match_parent"
android:background="#c8deeb"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="0dp"
android:layout_marginBottom="0dp"
/>
    <ImageButton
        android:src="@drawable/savepicture"
        android:background="@android:color/transparent"
        android:layout_margin="3dp"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        android:id="@+id/sfbutton" />
<View
android:layout_width="3dp"
android:layout_height="match_parent"
android:background="#c8deeb"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="0dp"
android:layout_marginBottom="0dp"
/>
    <ImageButton
        android:id="@+id/toggleforegroundButton"
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        android:layout_margin="3dp"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"
        android:src="@drawable/toggleforeground"
        android:background="@android:color/transparent"
        />
    <!--
    <NumberPicker
        android:id="@+id/np"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:background="@drawable/drawablenp"
        android:layout_centerVertical="true"
        -->
<View
android:layout_width="3dp"
android:layout_height="match_parent"
android:background="#c8deeb"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="0dp"
android:layout_marginBottom="0dp"
/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#FFFFFF"
        android:text="Width: "
        />
    <ImageButton
        android:id="@+id/leftffButton"
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        android:layout_margin="3dp"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"
        android:src="@drawable/contractcoarse"
        android:background="@android:color/transparent"
        />
<View
android:layout_width="3dp"
android:layout_height="match_parent"
android:background="#c8deeb"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="0dp"
android:layout_marginBottom="0dp"
/>
    <ImageButton
        android:id="@+id/leftButton"
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        android:layout_margin="3dp"
        android:adjustViewBounds="true"
        android:src="@drawable/contractfine"
        android:scaleType="centerInside"
        android:background="@android:color/transparent"
        />
<View
android:layout_width="3dp"
android:layout_height="match_parent"
android:background="#c8deeb"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="0dp"
android:layout_marginBottom="0dp"
/>
    <ImageButton
        android:id="@+id/rightButton"
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        android:layout_margin="3dp"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"
        android:src="@drawable/expandfine"
        android:background="@android:color/transparent"
        />
<View
android:layout_width="3dp"
android:layout_height="match_parent"
android:background="#c8deeb"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="0dp"
android:layout_marginBottom="0dp"
/>
    <ImageButton
        android:id="@+id/rightffButton"
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        android:layout_margin="3dp"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"
        android:src="@drawable/expandcoarse"
        android:background="@android:color/transparent"
        />
<View
android:layout_width="3dp"
android:layout_height="match_parent"
android:background="#c8deeb"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="0dp"
android:layout_marginBottom="0dp"
/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#FFFFFF"
        android:text="Left/Right: "
        />
    <Switch
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/fadeDirectionSwitch"
        android:showText="true"
        android:textOff="LtoR"
        android:textOn="RtoL"
        android:checked="false"
        />
</LinearLayout>
</LinearLayout>
...