1

这几天我一直在想办法,但无济于事。我正在使用 Titanium 开发一个简单的 android 应用程序,它在 iOS 上运行良好。然而,当我在 android 上启动它时,它永远不会启动。这是我的 manifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.tiki.signals" android:versionCode="1"
    android:versionName="1">
    <uses-sdk android:minSdkVersion="8" />

    <!-- TI_MANIFEST -->

    <application android:icon="@drawable/appicon"
        android:label="Signals" android:name="SignalsApplication"
        android:debuggable="false">

        <!-- TI_APPLICATION -->

        <activity android:name=".SignalsActivity"
            android:label="Signals" android:theme="@style/Theme.Titanium"
            android:configChanges="keyboardHidden|orientation">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity 
        android:name="ti.modules.titanium.facebook.FBActivity"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
    />

        <activity android:name="org.appcelerator.titanium.TiActivity"
            android:configChanges="keyboardHidden|orientation" />
        <activity android:name="org.appcelerator.titanium.TiTranslucentActivity"
            android:configChanges="keyboardHidden|orientation"
            android:theme="@android:style/Theme.Translucent" />
        <activity android:name="org.appcelerator.titanium.TiModalActivity"
            android:configChanges="keyboardHidden|orientation"
            android:theme="@android:style/Theme.Translucent" />
        <activity android:name="ti.modules.titanium.ui.TiTabActivity"
            android:configChanges="keyboardHidden|orientation" />
        <activity android:name="ti.modules.titanium.ui.android.TiPreferencesActivity" />

        <service android:name="org.appcelerator.titanium.analytics.TiAnalyticsService"
            android:exported="false" />
    </application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
</manifest>

这是日志猫:

I/ActivityManager(   81): START {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.tiki.signals/.SignalsActivity} from pid 176
D/PermissionCache(   35): checking android.permission.READ_FRAME_BUFFER for uid=1000 => granted (1163 us)
D/dalvikvm(   81): GC_FOR_ALLOC freed 842K, 14% free 11108K/12807K, paused 106ms
I/dalvikvm-heap(   81): Grow heap (frag case) to 12.385MB for 1536016-byte allocation
D/dalvikvm(   81): GC_FOR_ALLOC freed 1K, 13% free 12606K/14343K, paused 105ms
W/WindowManager(   81): Failure taking screenshot for (180x300) to layer 21005
I/ActivityManager(   81): Start proc com.tiki.signals for activity com.tiki.signals/.SignalsActivity: pid=457 uid=10040 gids={1015, 3003}
I/dalvikvm(  457): Turning on JNI app bug workarounds for target SDK version 8...
W/NetworkManagementSocketTagger(   81): setKernelCountSet(10040, 1) failed with errno -2
D/dalvikvm(   81): GC_CONCURRENT freed 13K, 13% free 12619K/14343K, paused 8ms+32ms
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
I/TiApplication(  457): (main) [0,0] checkpoint, app created.
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
D/dalvikvm(  457): GC_CONCURRENT freed 243K, 4% free 9294K/9607K, paused 7ms+6ms
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
I/TiApplication(  457): (main) [682,682] Titanium 1.8.2 (2012/02/23 17:46 59b3a90)
D/dalvikvm(  457): GC_CONCURRENT freed 422K, 5% free 9434K/9927K, paused 6ms+4ms
I/TiApplication(  457): (main) [254,936] Titanium Javascript runtime: v8
D/dalvikvm(  457): Trying to load lib /data/data/com.tiki.signals/lib/libstlport_shared.so 0x412a1e60
D/dalvikvm(  457): Added shared lib /data/data/com.tiki.signals/lib/libstlport_shared.so 0x412a1e60
D/dalvikvm(  457): No JNI_OnLoad found in /data/data/com.tiki.signals/lib/libstlport_shared.so 0x412a1e60, skipping init
D/dalvikvm(  457): Trying to load lib /data/data/com.tiki.signals/lib/libkroll-v8.so 0x412a1e60
I/TiRootActivity(  457): (main) [0,0] checkpoint, on root activity create, savedInstanceState: null
D/dalvikvm(  457): Added shared lib /data/data/com.tiki.signals/lib/libkroll-v8.so 0x412a1e60
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
E/TiApplication(  457): (KrollRuntimeThread) [3551,3551] APP PROXY: ti.modules.titanium.app.AppModule@41334e08
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
D/dalvikvm(  457): GC_CONCURRENT freed 349K, 5% free 9566K/10055K, paused 7ms+6ms
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
D/dalvikvm(  457): GC_FOR_ALLOC freed 452K, 7% free 9534K/10183K, paused 84ms
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
D/TiLocation(  457): (main) [2290,5841] preferredProvider property found [null]
D/TiLocation(  457): (main) [1,5842] accuracy property found [0]
E/TiLocationHelper(  457): (main) [31,5873] unable to register, provider is null
D/dalvikvm(  457): GC_FOR_ALLOC freed 105K, 7% free 9571K/10183K, paused 61ms
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
I/dalvikvm-heap(  457): Grow heap (frag case) to 10.878MB for 1536016-byte allocation
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
D/dalvikvm(  457): GC_CONCURRENT freed 1K, 6% free 11070K/11719K, paused 8ms+5ms
I/TiRootActivity(  457): (main) [0,0] checkpoint, on root activity resume. activity = com.tiki.signals.SignalsActivity@412aba88
V/PhoneStatusBar(  134): setLightsOn(true)
I/Process (   81): Sending signal. PID: 457 SIG: 3
I/dalvikvm(  457): threadid=3: reacting to signal 3
W/InputManagerService(   81): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@41434cb8 (uid=10013 pid=176)
I/dalvikvm(  457): Wrote stack traces to '/data/anr/traces.txt'
D/gralloc_goldfish(  457): Emulator without GPU emulation detected.
I/ActivityManager(   81): Displayed com.tiki.signals/.SignalsActivity: +9s553ms
W/NetworkManagementSocketTagger(   81): setKernelCountSet(10013, 0) failed with errno -2
D/ExchangeService(  355): Received deviceId from Email app: androidc259148960
D/ExchangeService(  355): Reconciling accounts...
D/dalvikvm(   81): GC_EXPLICIT freed 1712K, 23% free 11125K/14343K, paused 7ms+11ms
W/ThrottleService(   81): unable to find stats for iface rmnet0
W/TiAnalyticsSvc(  457): (Thread-65) [23787,23787] Analytics Service Started
I/TiAnalyticsSvc(  457): (Thread-65) [152,23939] Sending 2 analytics events.
W/TiAnalyticsSvc(  457): (Thread-65) [1072,25011] Stopping Analytics Service

这是我的 tiapp.xml:

<?xml version="1.0" encoding="UTF-8"?>
<ti:app xmlns:ti="http://ti.appcelerator.org">
    <property name="ti.android.runtime">v8</property>
    <property name="ti.android.threadstacksize" type="int">132768</property>
    <property name="ti.android.fastdev" type="bool">false</property>
    <sdk-version>1.8.2</sdk-version>
    <deployment-targets>
        <target device="mobileweb">false</target>
        <target device="iphone">true</target>
        <target device="ipad">true</target>
        <target device="android">true</target>
        <target device="blackberry">false</target>
    </deployment-targets>
    <id>com.tiki.signals</id>
    <name>Signals</name>
    <version>1.0</version>
    <publisher>Michael</publisher>
    <url>http://</url>
    <description>not specified</description>
    <copyright>2012 by meilers</copyright>
    <icon>appicon.png</icon>
    <persistent-wifi>false</persistent-wifi>
    <prerendered-icon>false</prerendered-icon>
    <statusbar-style>default</statusbar-style>
    <statusbar-hidden>false</statusbar-hidden>
    <fullscreen>false</fullscreen>
    <navbar-hidden>false</navbar-hidden>
    <analytics>true</analytics>
    <guid>49aefe11-b922-4f04-bffd-887ed59cb5d3</guid>
    <iphone>
        <orientations device="iphone">
            <orientation>Ti.UI.PORTRAIT</orientation>
        </orientations>
        <orientations device="ipad">
            <orientation>Ti.UI.PORTRAIT</orientation>
            <orientation>Ti.UI.UPSIDE_PORTRAIT</orientation>
            <orientation>Ti.UI.LANDSCAPE_LEFT</orientation>
            <orientation>Ti.UI.LANDSCAPE_RIGHT</orientation>
        </orientations>
    </iphone>
    <android xmlns:android="http://schemas.android.com/apk/res/android"/>
    <modules/>
</ti:app>

这里发生了什么?我在 logcat 中没有看到任何错误。虚拟机只是无缘无故地关闭。请帮忙!

4

1 回答 1

2

仅查看 logcat 就会想到一个项目...内存不足。你会看到免费内存下降到 3% YIKES!。通常尽量保持 10% 的空闲,否则操作系统可能会进入分页状态,并且可能会使某些功能超时。

禁用应用程序中的某些功能并观察模拟器下的内存。最好的建议是将应用程序安装到实际手机上,尽管模拟器应该提供接近真实世界的结果。我不指望很好地模拟任何硬件设备。

这是一些转储内存使用情况的代码。你需要找出你的目标类是什么。在操作系统开始选择您的应用程序之前,较旧的手机只有 16MB,较新的手机只有 48MB。将代码放入 Oncreate。

 Runtime rt = Runtime.getRuntime();
 long maxMemory = rt.maxMemory();
 Log.v("onCreate", "maxMemory:>>>>>" + Long.toString(maxMemory));   //max available memory to use

 ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
 int memoryClass = am.getMemoryClass();
 Log.v("onCreate", "memoryClass:>>>>" + Integer.toString(memoryClass));  //max available you should use to keep from getting bumped off

 printl("PGM MEM FREE MB", GetInternalMemAvail());
 printl("INTERNAL STORAGE FREE MEMORY BYTES",getmem());
 printl("INTERNAL TOTAL MEMORY BYTES",TotalMemory());
 printl("SD MEM FREE MB",GetSDMemAvail());
 printl("SD MEM GB",getAvailableSpaceInGB());

 private static void printl(String printstring,long x)
 {
  String temp;
  temp=String.format(" %d",x);
  Log.e(printstring,temp);  
 } 
于 2012-07-13T03:16:18.427 回答