Неподписанный сгенерированный APK не работает на устройстве Android - PullRequest
0 голосов
/ 10 октября 2019

Разработал неподписанный APK, запустил его через USB. Отладка работала нормально и запустила ту же передачу файла APK на телефон Android ( Oreo ), который устанавливается, но не открывается. вверх (как бы часто я ни нажимал на кнопку «Открыть»)
[Минимальная версия SDK APK - «Сэндвич с мороженым» ]

Вещи, которые я пробовал:


  • Удаление приложения, удаление всех данных приложения; повторная установка (из диспетчера файлов) все еще не открыта.
  • Убедитесь, что«Установка из неизвестных источников была разрешена».
  • Установленное приложение на устройстве моего друга по-прежнему не открывалось.
  • Неустановленное приложение с ПК через adb shell pm uninstall com.example.seve, Переустановленное по-прежнему не открывалось.
  • Убедитесь, что Google Play Protect был отключен.



2019-10-10 19:52:07.241 28262-28262/? E/GlobalPackageInstaller: launchApp error:
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.toString()' on a null object reference
        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1582)
        at android.app.Activity.startActivityForResult(Activity.java:4555)
        at android.app.Activity.startActivityForResult(Activity.java:4513)
        at android.app.Activity.startActivity(Activity.java:4874)
        at android.app.Activity.startActivity(Activity.java:4842)
        at com.miui.global.packageinstaller.GlobalPackageInstallerActivity.g(Unknown Source:14)
        at com.miui.global.packageinstaller.GlobalPackageInstallerActivity.onClick(Unknown Source:77)
        at android.view.View.performClick(View.java:6304)
        at android.view.View$PerformClick.run(View.java:24803)
        at android.os.Handler.handleCallback(Handler.java:794)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:176)
        at android.app.ActivityThread.main(ActivityThread.java:6651)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)


Вот все мои файлы.
MainActivity.java

IntroActivity.java

dash.java

IntroViewPagerAdapter.java

ScreenItem.java


Любое предложение будет оценено.



РЕДАКТИРОВАТЬ: я обнаружил, что ошибка скрыта в основном в моем приложении, поэтому я попытался View Breakpoints и получил что-то подобное в logcat.Logcat говорит, что ClassNotFoundException вызвано где-то около line 19 MainActivity.javaно не могу многого из этого сделать.
Я попытался отключить мгновенный запуск, ничего не получил и проверил, что вместо <activity android:name="android.app.IntroActivity
написано <activity android:name=".IntroActivity"> и включен MultiDex "

2019-10-12 13:06:59.933 15201-15201/com.example.seve W/ResourceType: No package identifier when getting name for resource number 0x00000000
2019-10-12 13:07:00.100 15201-15201/com.example.seve D/AccessibilityManager: AccessibilityManager status: mPackageName = com.example.seve, mOptimizeEnabled = false, mIsEnabled = false, mIsUiAutomationEnabled = false, mIsInterestedPackage =false
2019-10-12 13:07:00.159 15201-15201/com.example.seve I/zygote64: Rejecting re-init on previously-failed class java.lang.Class<androidx.core.view.ViewCompat$OnUnhandledKeyEventListenerWrapper>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener;
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void androidx.core.view.ViewCompat.setOnApplyWindowInsetsListener(android.view.View, androidx.core.view.OnApplyWindowInsetsListener) (ViewCompat.java:2203)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at android.view.ViewGroup androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:637)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:518)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void androidx.appcompat.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:466)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void androidx.appcompat.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:140)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void com.example.seve.MainActivity.onCreate(android.os.Bundle) (MainActivity.java:19)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.app.Activity.performCreate(android.os.Bundle, android.os.PersistableBundle) (Activity.java:7088)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:7079)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1215)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2770)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2895)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1616)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:106)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.os.Looper.loop() (Looper.java:176)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6651)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:547)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:824)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.View$OnUnhandledKeyEventListener" on path: DexPathList[[zip file "/data/app/com.example.seve-GCOyFEE-ADwenEs5Wnn_ZA==/base.apk", zip file "/data/app/com.example.seve-GCOyFEE-ADwenEs5Wnn_ZA==/split_lib_dependencies_apk.apk", zip file "/data/app/com.example.seve-GCOyFEE-ADwenEs5Wnn_ZA==/split_lib_resources_apk.apk", zip file "/data/app/com.example.seve-GCOyFEE-ADwenEs5Wnn_ZA==/split_lib_slice_0_apk.apk", zip file "/data/app/com.example.seve-GCOyFEE-ADwenEs5Wnn_ZA==/split_lib_slice_1_apk.apk", zip file "/data/app/com.example.seve-GCOyFEE-ADwenEs5Wnn_ZA==/split_lib_slice_2_apk.apk", zip file "/data/app/com.example.seve-GCOyFEE-ADwenEs5Wnn_ZA==/split_lib_slice_3_apk.apk", zip file "/data/app/com.example.seve-GCOyFEE-ADwenEs5Wnn_ZA==/split_lib_slice_4_apk.apk", zip file "/data/app/com.example.seve-GCOyFEE-ADwenEs5Wnn_ZA==/split_lib_slice_5_apk.apk", zip file "/data/app/com.example.seve-GCOyFEE-ADwenEs5Wnn_ZA==/split_lib_slice_6_apk.apk", 
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:125)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void androidx.core.view.ViewCompat.setOnApplyWindowInsetsListener(android.view.View, androidx.core.view.OnApplyWindowInsetsListener) (ViewCompat.java:2203)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at android.view.ViewGroup androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:637)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:518)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void androidx.appcompat.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:466)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void androidx.appcompat.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:140)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void com.example.seve.MainActivity.onCreate(android.os.Bundle) (MainActivity.java:19)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.app.Activity.performCreate(android.os.Bundle, android.os.PersistableBundle) (Activity.java:7088)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:7079)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1215)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2770)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2895)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1616)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:106)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.os.Looper.loop() (Looper.java:176)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6651)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:547)
2019-10-12 13:07:00.160 15201-15201/com.example.seve I/zygote64:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:824)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64: Rejecting re-init on previously-failed class java.lang.Class<androidx.core.view.ViewCompat$OnUnhandledKeyEventListenerWrapper>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener;
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at void androidx.core.view.ViewCompat.setOnApplyWindowInsetsListener(android.view.View, androidx.core.view.OnApplyWindowInsetsListener) (ViewCompat.java:2203)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at android.view.ViewGroup androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:637)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at void androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:518)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at void androidx.appcompat.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:466)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at void androidx.appcompat.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:140)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at void com.example.seve.MainActivity.onCreate(android.os.Bundle) (MainActivity.java:19)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at void android.app.Activity.performCreate(android.os.Bundle, android.os.PersistableBundle) (Activity.java:7088)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:7079)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1215)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2770)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2895)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1616)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:106)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at void android.os.Looper.loop() (Looper.java:176)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6651)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:547)
2019-10-12 13:07:00.161 15201-15201/com.example.seve I/zygote64:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:824)

Ответы [ 2 ]

1 голос
/ 10 октября 2019

Вам потребуется сгенерировать Подпись apk:

https://www.jetbrains.com/help/idea/generating-a-signed-apk-through-an-artifact.html

Чтобы развернуть и запустить приложение Android на физическом устройстве, вам необходимоподписать заявку в цифровом виде. С IntelliJ IDEA вы можете подписать пакет приложений Android (файл .apk) существующим ключом выпуска при извлечении пакета. IntelliJ IDEA также включает в себя инструмент генерации ключа разблокировки, который может быть вызван во время процедуры упаковки. Сгенерированные ключи сохраняются в двоичном файле хранилища ключей.

Вы можете иметь столько файлов и ключей хранилища ключей, сколько вам нужно, и использовать либо существующие ключи, либо создавать новые в существующих хранилищах ключей, либо даже создавать новые хранилища ключей.

Помимо использования мастера создания подписанного APK, вы можете настроить файл .apk как артефакт, создав определение артефакта приложения Android. Когда IntelliJ IDEA создает пакет в соответствии с этим определением, пакет подписывается автоматически.

Пользователь упомянул в комментариях, что он использует IntelliJ IDEA, поэтому этот ответ будет отличаться в зависимости от вашей IDE. Например, Xamarin сгенерирует -Signed.apk, независимо от того, подписан он или нет с помощью хранилища ключей, но это может варьироваться в зависимости от IDE.

0 голосов
/ 11 октября 2019

Согласно ошибке:

Attempt to invoke virtual method 'java.lang.String android.content.Intent.toString()' on a null object reference

проверьте ваш код еще раз и отладьте. Что-то не так с вашим кодом. Похоже, это не проблема для установщика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...