【发布时间】:2020-02-08 00:14:58
【问题描述】:
开发了一个未签名的 APK,通过 USB 调试运行它运行良好并运行相同的传输 APK 文件到 Android 手机(Oreo)它已安装但没有打开(但我点击“打开”按钮多次)
[APK 的最低 SDK 版本是 “冰淇淋三明治”]
我的事情试过了:
- 卸载了应用程序,清除了所有应用程序数据;重新安装(从文件管理器)仍然没有打开。
- 确保已启用“从未知来源安装”。
- 在我朋友的 Android 设备上安装了应用程序仍然没有打开。
- 通过
adb shell pm uninstall com.example.seve从 PC 卸载应用程序,重新安装后仍未打开。 - 确保 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
ScreenItem.java
任何建议将不胜感激。
编辑:我发现该错误主要隐藏在我的应用程序中,所以我尝试了View Breakpoints 并在 logcat 中得到了类似的东西。Logcat 告诉 ClassNotFoundException 是由 line 19 MainActivity.java 附近的某个地方引起的,但不能从中获得太多收益.
我尝试禁用即时运行一无所获并检查 <activity android:name=".IntroActivity"> 是写而不是 <activity android:name="android.app.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)
【问题讨论】:
-
如果通过终端安装,是否有错误信息?
-
当您尝试运行您的应用程序时,logcat 会显示什么?
-
@barotia 没有错误信息,只显示“Performing Streamed Install”然后“Success”
-
@MichaelKrause 我已经更新了我可以从 logcat 中得到的最好的东西,但仍然无法从中弄清楚。
-
我从来没有能够让未签名的 apk 在 android 上运行,不管我尝试了什么。我知道 Xamarin 在编译时即使应用程序没有使用密钥库签名,编译后 bin 文件夹中也会有应用程序的 -Signed.apk 版本。你为什么不安装那个?它不必使用密钥库进行签名。