Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的应用程序已成功安装在Android上,但一旦加载就会崩溃_Android_C++_Ant_Opengl Es_Android Ndk - Fatal编程技术网

我的应用程序已成功安装在Android上,但一旦加载就会崩溃

我的应用程序已成功安装在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"

我的apk已成功推送到我的Android设备上,该设备是华为Y6。我的ant构建是成功的,我的ndk构建也是成功的。当我按下我的应用图标时,手机上会出现一个黑屏。这会持续几秒钟,然后崩溃。这是我的AndroidManifest.xml的副本

  <?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)