80,362
社区成员
发帖
与我相关
我的任务
分享
privare void LoadAPK(Bundle paramBundle, String dexpath, String dexoutputpath, String libpath) {
ClassLoader localClassLoader = ClassLoader.getSystemClassLoader();
DexClassLoader localDexClassLoader = new DexClassLoader(dexpath,
dexoutputpath, libpath, localClassLoader);
try {
PackageInfo plocalObject = getPackageManager().getPackageArchiveInfo(dexpath, 1);
if ((plocalObject.activities != null)
&& (plocalObject.activities.length > 0)) {
//
String activityname = plocalObject.activities[0].name;
Log.d(TAG, "activityname = " + activityname);
Class<?> localClass = localDexClassLoader.loadClass(activityname);
Constructor<?> localConstructor = localClass.getConstructor(new Class[] {Context.class});
// here to past host context to plugin
Object instance = localConstructor.newInstance(new Object[] {this});
Method methodonCreate = localClass.getDeclaredMethod("onCreate", new Class[] { Bundle.class });
methodonCreate.setAccessible(true);
methodonCreate.invoke(instance, new Object[] { paramBundle });
}
return;
} catch (Exception ex) {
ex.printStackTrace();
}
}
public class GameActivity extends AndroidApplication {
private Game game;
private Context hostContext;
FetchingCoinActivity(Context context) {
this.hostContext = context;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.game = new MyGame();
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useGL20 = false;
// FIXME HERE IS THE PROBLEM, how to initialize libgdx environment using host context?
initialize(game, cfg);
}
}
public void onCreate(Bundle paramBundle)
{
super.onCreate(paramBundle);
AndroidApplicationConfiguration localAndroidApplicationConfiguration = new AndroidApplicationConfiguration();
localAndroidApplicationConfiguration.useGL20 = false;
new StringBuilder("getApplication().getResources ").append(getApplication().getResources().getClass().getName()).toString();
new StringBuilder("getApplicationContext().getResources() ").append(getApplicationContext().getResources().getClass().getName()).toString();
new StringBuilder("ShootFlashUI.this.getResources() ").append(getResources().getClass().getName()).toString();
this.dlm = new a(this);
a(this.dlm, localAndroidApplicationConfiguration);
FrameLayout localFrameLayout = new FrameLayout(this);
localFrameLayout.setBackgroundResource(f.background);
localFrameLayout.setLayoutParams(t());
setContentView(localFrameLayout);
addContentView(this.bi.getView(), t());
}