我的应用程序已成功安装在Android上,但一旦加载就会崩溃
我的apk已成功推送到我的Android设备上,该设备是华为Y6。我的ant构建是成功的,我的ndk构建也是成功的。当我按下我的应用图标时,手机上会出现一个黑屏。这会持续几秒钟,然后崩溃。这是我的AndroidManifest.xml的副本我的应用程序已成功安装在Android上,但一旦加载就会崩溃,android,c++,ant,opengl-es,android-ndk,Android,C++,Ant,Opengl Es,Android Ndk,我的apk已成功推送到我的Android设备上,该设备是华为Y6。我的ant构建是成功的,我的ndk构建也是成功的。当我按下我的应用图标时,手机上会出现一个黑屏。这会持续几秒钟,然后崩溃。这是我的AndroidManifest.xml的副本 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tutorial.game"
android:versionCode="1"
android:versionName="1.0"
android:installLocation="auto">
<!-- Android 2.3.3 -->
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="25" />
<!-- OpenGL ES 3.0 -->
<uses-feature android:glEsVersion="0x00030000" />
<!-- Allow writing to external storage -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
android:allowBackup="true"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:debuggable="true"
android:hardwareAccelerated="true" >
<activity android:name="HelloSDL2Activity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:configChanges="orientation|keyboard|keyboardHidden|screenLayout"
android:screenOrientation="sensorLandscape"
android:launchMode="singleTask" android:hardwareAccelerated="true" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
下面是所记录内容的一个片段:
[ 03-31 20:32:36.129 820:28542 W/ActivityManager ]
Force finishing activity 1 com.tutorial.game/.HelloSDL2Activity
[ 03-31 20:32:36.239 820:28542 W/ActivityManager ]
Exception thrown during pause
android.os.TransactionTooLargeException
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:496)
at android.app.ApplicationThreadProxy.schedulePauseActivity(ApplicationThreadNative.java:715)
at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:1012)
at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:3393)
at com.android.server.am.ActivityStack.finishTopRunningActivityLocked(ActivityStack.java:3223)
at com.android.server.am.ActivityStackSupervisor.finishTopRunningActivityLocked(ActivityStackSupervisor.java:3026)
at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:12440)
at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:12337)
at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:13066)
at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:12547)
at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86)
任何人都能理解这些。我一直在谷歌上搜索如何理解日志文件信息,但收效甚微
下面是日志文件中的另一个片段:
[ 03-31 20:37:05.049 820:29426 W/ActivityManager ]
Exception thrown during pause
android.os.DeadObjectException
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:496)
at android.app.ApplicationThreadProxy.schedulePauseActivity(ApplicationThreadNative.java:715)
at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:1012)
at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:3393)
at com.android.server.am.ActivityStack.finishTopRunningActivityLocked(ActivityStack.java:3223)
at com.android.server.am.ActivityStackSupervisor.finishTopRunningActivityLocked(ActivityStackSupervisor.java:3026)
at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:12440)
at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:12337)
at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:13066)
at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:12547)
at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86)
您正在获取TransactionTooLargeException,这可能是因为您试图加载5.25mb的数据 通过意图/捆绑包共享数据使用绑定器,其在实例中的最大限制为1mb
您的屏幕变黑,因为在创建应用程序时您可能正在尝试执行繁重的任务。您将获得TransactionTooLargeException,这可能是因为您正在尝试加载5.25mb的数据 通过意图/捆绑包共享数据使用绑定器,其在实例中的最大限制为1mb
您的屏幕变黑了,因为在创建应用程序时,您可能正在尝试执行繁重的任务。因此,我设法解决的第一个错误与图标有关。icon.png位于jni文件夹中的可绘制文件中。我在这个文件中插入了一个尺寸为500 x 726的图标。现在,即使你的图像显示为Android设备上的图标,这实际上会导致应用程序崩溃——因此会显示黑色页面。实际上有五种尺寸的启动器图标, 48×48(mdpi) 72×72(hdpi) 96×96(xhdpi) 144×144(xxhdpi) 192×192(xxxhdpi) 512×512(谷歌游戏商店)
请注意,宽度和高度必须相同。Anway在可绘制文件中放置了一个尺寸正确的图标,这会导致我的应用程序在几秒钟后不再崩溃。然而,它并没有解决整个问题!还有更多的调试要做。所以我设法解决的第一个bug是关于图标的。icon.png位于jni文件夹中的可绘制文件中。我在这个文件中插入了一个尺寸为500 x 726的图标。现在,即使你的图像显示为Android设备上的图标,这实际上会导致应用程序崩溃——因此会显示黑色页面。实际上有五种尺寸的启动器图标, 48×48(mdpi) 72×72(hdpi) 96×96(xhdpi) 144×144(xxhdpi) 192×192(xxxhdpi) 512×512(谷歌游戏商店)
请注意,宽度和高度必须相同。Anway在可绘制文件中放置了一个尺寸正确的图标,这会导致我的应用程序在几秒钟后不再崩溃。然而,它并没有解决整个问题!还有更多的调试工作要做。您是否在PC上测试了逻辑,这样更容易调试?事务太大意味着您将太多数据塞进了Intent的包中。但这看起来更像是一个次要的崩溃日志,而不是主要原因,你确定没有更多吗?这是包含我在PC上调试应用程序的日志文件其余部分的链接,一切正常。唯一真正的问题是使用VisualStudio的加载时间非常慢。我正在尝试优化这个。但是,即使我修改了程序,只加载了一个纹理,当我将其移植到Android时,它仍然会崩溃。我的纹理文件是5.25mb,在我的程序开始时,所有纹理都会加载并初始化。这可能是问题所在吗?您是否在PC上测试了逻辑,这样更容易调试?事务太大意味着您将太多数据塞进了Intent的包中。但这看起来更像是一个次要的崩溃日志,而不是主要原因,你确定没有更多吗?这是包含我在PC上调试应用程序的日志文件其余部分的链接,一切正常。唯一真正的问题是使用VisualStudio的加载时间非常慢。我正在尝试优化这个。但是,即使我修改了程序,只加载了一个纹理,当我将其移植到Android时,它仍然会崩溃。我的纹理文件是5.25mb,在我的程序开始时,所有纹理都会加载并初始化。这可能是问题所在吗?好的。是否有其他方法可以共享这些数据,或者如果我使用lazy_初始化来减少加载程序所需的时间和工作量,会更好?推到android设备上的apk大小为12.87 mb。可能是活页夹无法处理的数据?确定。是否有其他方法可以共享这些数据,或者如果我使用lazy_初始化来减少加载程序所需的时间和工作量,会更好?推到android设备上的apk大小为12.87 mb。可能是活页夹无法处理的数据?
[ 03-31 20:37:05.049 820:29426 W/ActivityManager ]
Exception thrown during pause
android.os.DeadObjectException
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:496)
at android.app.ApplicationThreadProxy.schedulePauseActivity(ApplicationThreadNative.java:715)
at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:1012)
at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:3393)
at com.android.server.am.ActivityStack.finishTopRunningActivityLocked(ActivityStack.java:3223)
at com.android.server.am.ActivityStackSupervisor.finishTopRunningActivityLocked(ActivityStackSupervisor.java:3026)
at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:12440)
at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:12337)
at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:13066)
at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:12547)
at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86)