Quantcast
Channel: Appcelerator Developer Center Q&A Unanswered Questions 20
Viewing all articles
Browse latest Browse all 8068

[Critical]:Custom Titanium Android Module Crash During App Launch

$
0
0

Hello, I want to create a android module using titanium, this module is designed to retrieve info of apps which are already installed in android device.After I installed it when I tried to start it crashed, but there is no error during building progress. I searched solutions for several days but no proper answer was found, is anyone can fix my problem? thanks in advance

Appmanagemodule.java(module code)

package com.tommy.appmanage;
 
import org.appcelerator.kroll.KrollModule;
import org.appcelerator.kroll.annotations.Kroll;
import org.appcelerator.titanium.TiApplication;
import org.appcelerator.kroll.common.Log;
 
import java.util.ArrayList;
import java.util.List;
 
import android.content.Context;
import android.content.pm.*;
import android.graphics.drawable.Drawable;
 
@Kroll.module(name="Appmanage", id="com.tommy.appmanage")
public class AppmanageModule extends KrollModule
{
 
    // Standard Debugging variables
    private static final String TAG = "AppmanageModule";
 
    // You can define constants with @Kroll.constant, for example:
    // @Kroll.constant public static final String EXTERNAL_NAME = value;
 
    class PInfo 
    {
        public String appname = "";
        public String pkgname = "";
        public String versionName = "";
        public int versionCode = 0;
        public Drawable icon;
    }
 
    public AppmanageModule() // a constructor that receives the context as parameter
    {
        super();
    }
 
    @Kroll.onAppCreate
    public static void onAppCreate(TiApplication app)
    {
        Log.d(TAG, "inside onAppCreate");
        // put module init code that needs to run when the application is created
    }
 
    // Methods
    @Kroll.method
    public String example()
    {
        Log.d(TAG, "example called");
        return "hello world";
    }
 
    // Properties
    @Kroll.getProperty
    public String getExampleProp()
    {
        Log.d(TAG, "get example property");
        return "hello world";
    }
 
    @Kroll.setProperty
    public void setExampleProp(String value) {
        Log.d(TAG, "set example property: " + value);
    }
 
    @Kroll.method
    public List<PInfo> getInstalledApps(Context context) {
        List<PackageInfo> apps = new ArrayList<PackageInfo>();  
        PackageManager pManager = context.getPackageManager(); 
        List<PInfo> applist = new ArrayList<PInfo>();
        //get installed apps
        List<PackageInfo> paklist = pManager.getInstalledPackages(0);  
        for (int i = 0; i < paklist.size(); i++) {  
            PackageInfo pak = (PackageInfo) paklist.get(i);  
            //third party apps
            if ((pak.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) {  
                // customs applications   
                apps.add(pak);  
            }
        }
 
        for(int i=0;i<apps.size();i++) {  
            PackageInfo pinfo = apps.get(i);  
            PInfo shareItem = new PInfo();  
            //set Icon   
            shareItem.icon = pManager.getApplicationIcon(pinfo.applicationInfo);  
            //set Application Name   
            shareItem.appname = pManager.getApplicationLabel(pinfo.applicationInfo).toString();  
            //set Package Name    
            shareItem.pkgname = pinfo.applicationInfo.packageName; 
            applist.add(shareItem);
        }  
        return applist;  
    }
}
app.js
var win = Ti.UI.createWindow({
        backgroundColor : 'white'
    });
    var label = Ti.UI.createLabel();
 
 
    // TODO: write your module tests here
    var appmanage = require('com.tommy.appmanage');
    Ti.API.info("module is => " + appmanage);
    Ti.API.info("app is => " + appmanage.getInstalledApps());
    Ti.API.info("module exampleProp is => " + appmanage.exampleProp);
    appmanage.exampleProp = "This is a test value";

Viewing all articles
Browse latest Browse all 8068

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>