私のアプリは、いくつかのバージョンといくつかのアドバイスで動作しません。
例えば:
- サムスン4.04-作品
- Motorola4.04-壊れた
- サムスン2.3.6-作品
- LG2.2.2-壊れた
誰かが何が起こっているのか考えているなら、教えてください。それはとても単純なことだと思います。
私のマニフェストは、min sdk=4およびmax=16を宣言しています。
ViewFlipperを使用してレイアウトを変更しますが、これが問題である可能性があります。アプリは、この部分に到達したときにのみ閉じます。
クラッシュログがないことをお詫びします。
public class ImagesActivity extends Activity {
private SensorManager mSensorManager;
private ShakeEventListener mSensorListener;
private ViewFlipper mFlipper;
private Animation Animation, Animation2, Animation3, Animation4;
private Random randomGenerator = new Random();
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.imagesview);
final LinearLayout myLayout = (LinearLayout) findViewById(R.id.images_view);
//declaração ViewFlipper das telas
mFlipper = (ViewFlipper) findViewById(R.id.mFlipper1);
//declaração das var para o evento Shake
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mSensorListener = new ShakeEventListener();
//declaração anim 1 - Slide from left
Animation = (Animation) AnimationUtils.loadAnimation(this, R.anim.slideleft);
Animation.setFillAfter(true);
//declaração anim 2 - Slide from right
Animation2 = (Animation) AnimationUtils.loadAnimation(this, R.anim.slideright);
Animation.setFillAfter(true);
//declaração anim 3 - Slide from down
Animation3 = (Animation) AnimationUtils.loadAnimation(this, R.anim.slideup);
Animation.setFillAfter(true);
//declaração anim 4 - Slide from up
Animation4 = (Animation) AnimationUtils.loadAnimation(this, R.anim.slidedown);
Animation.setFillAfter(true);
//Event Shake para execução das telas random
mSensorListener.setOnShakeListener(new ShakeEventListener.OnShakeListener() {
public void onShake() {
int random;
Random RandomView = new Random();
int nextViewIndex = RandomView.nextInt(18);
while (nextViewIndex == mFlipper.getDisplayedChild()) {
nextViewIndex = RandomView.nextInt(18);
}
random = randomGenerator.nextInt(4);
if(random ==1)
myLayout.startAnimation(Animation);
else if(random ==2)
myLayout.startAnimation(Animation2);
else if(random ==3)
myLayout.startAnimation(Animation3);
else
myLayout.startAnimation(Animation4);
mFlipper.setDisplayedChild(nextViewIndex);
}
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onResume() {
super.onResume();
mSensorManager.registerListener(mSensorListener,
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_UI);
}
@Override
public void onPause() {
mSensorManager.unregisterListener(mSensorListener);
super.onStop();
}
}