Asked
11 years, 8 months ago
Viewed
3k times
I have got this type of memory exception some times on my apps, any body have idea about why this exception is occurred ?
E/ActivityThread( 390): Failed to find provider info for com.google.settings
E/ActivityThread( 390): Failed to find provider info for com.google.settings
I/ActivityThread( 390): Publishing provider com.android.globalsearch.SuggestionProvider: com.android.globalsearch.SuggestionProvider
W/ActivityManager( 51): Timeout executing service: ServiceRecord{439b4c30 com.android.inputmethod.latin/.LatinIME}
I/ActivityManager( 51): ANR in process: com.android.inputmethod.latin
I/ActivityManager( 51): Annotation: Executing service ComponentInfo{com.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME}
I/ActivityManager( 51): CPU usage:
I/ActivityManager( 51): Load: 2.07 / 0.89 / 0.35
I/ActivityManager( 51): CPU usage from 27357ms to 1782ms ago:
I/ActivityManager( 51): system_server: 10% = 3% user + 6% kernel / faults: 8566 minor 447 major
I/ActivityManager( 51): com.babbleville: 6% = 1% user + 4% kernel / faults: 3031 minor 188 major
I/ActivityManager( 51): com.android.inputmethod.latin: 5% = 0% user + 4% kernel / faults: 6296 minor 473 major
I/ActivityManager( 51): com.android.phone: 2% = 0% user + 2% kernel / faults: 3052 minor 101 major
I/ActivityManager( 51): adbd: 0% = 0% user + 0% kernel
I/ActivityManager( 51): logcat: 0% = 0% user + 0% kernel / faults: 291 minor 6 major
I/ActivityManager( 51): zygote: 0% = 0% user + 0% kernel / faults: 70 minor 3 major
I/ActivityManager( 51): pdflush: 0% = 0% user + 0% kernel
I/ActivityManager( 51): servicemanager: 0% = 0% user + 0% kernel / faults: 16 minor 4 major
I/ActivityManager( 51): logcat: 0% = 0% user + 0% kernel / faults: 290 minor 7 major
I/ActivityManager( 51): qemud: 0% = 0% user + 0% kernel / faults: 272 minor 3 major
I/ActivityManager( 51): +android.process.acore: 0% = 0% user + 0% kernel
I/ActivityManager( 51): TOTAL: 100% = 9% user + 30% kernel + 59% iowait + 0% irq + 0% softirq
I/ActivityManager( 51): Removing old ANR trace file from /data/anr/traces.txt
I/Process ( 51): Sending signal. PID: 384 SIG: 3
I/dalvikvm( 384): threadid=7: reacting to signal 3
I/Process ( 51): Sending signal. PID: 51 SIG: 3
I/dalvikvm( 51): threadid=7: reacting to signal 3
I/dalvikvm( 384): Wrote stack trace to '/data/anr/traces.txt'
I/ActivityThread( 390): Publishing provider com.android.globalsearch.stats: com.android.globalsearch.StatsProvider
I/ActivityThread( 390): Publishing provider contacts;call_log: com.android.providers.contacts.ContactsProvider
I/dalvikvm( 51): Wrote stack trace to '/data/anr/traces.txt'
I/Process ( 51): Sending signal. PID: 390 SIG: 3
I/dalvikvm( 390): threadid=7: reacting to signal 3
I/Process ( 51): Sending signal. PID: 358 SIG: 3
I/dalvikvm( 358): threadid=7: reacting to signal 3
I/dalvikvm( 390): Wrote stack trace to '/data/anr/traces.txt'
I/dalvikvm( 358): Wrote stack trace to '/data/anr/traces.txt'
I/Process ( 51): Sending signal. PID: 92 SIG: 3
I/dalvikvm( 92): threadid=7: reacting to signal 3
I/dalvikvm( 92): Wrote stack trace to '/data/anr/traces.txt'
asked May 10, 2011 at 6:15
Nirav ModhNirav Modh
7571 gold badge8 silver badges18 bronze badges
==> ANR in process: com.android.inputmethod.latin
latin ime maybe blocked, find «message history» in your log or get /data/anr/traces.txt to know which process/thread is busy?
And from:
TOTAL: 100% = 9% user + 30% kernel + 59% iowait + 0% irq + 0% softirq
iowait is hight: maybe file read/write in busy status
answered May 22, 2012 at 9:36
hxchxc
8883 gold badges13 silver badges27 bronze badges
Gboard kept crashing when trying to open the settings, so I wanted to uninstall and reinstall it. Google Play Store kept giving me the error code 910, the advice for that was installing it with ADB.
The command
adb install -r /home/fabian/Downloads/com.google.android.inputmethod.latin_7.9.7.230658658-release-armeabi-v7a-26790713_minAPI21(armeabi-v7a)(nodpi)_apkmirror.com.apk
gives me the output
Failed to install /home/fabian/Downloads/com.google.android.inputmethod.latin_7.9.7.230658658-release-armeabi-v7a-26790713_minAPI21(armeabi-v7a)(nodpi)_apkmirror.com.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install com.google.android.inputmethod.latin without first uninstalling package running as com.android.inputmethod.latin]
This is weird, since with the -r flag it should have no problem with an app that is already installed. Apart from that, it is not installed, I checked the app list, the /system/app directory, as well as /data/data. And when I run
adb uninstall com.google.android.inputmethod.latin
, the output is:
Exception occurred while dumping:
java.lang.IllegalArgumentException: Unknown package: com.google.android.inputmethod.latin
at com.android.server.pm.Settings.isOrphaned(Settings.java:4134)
at com.android.server.pm.PackageManagerService.isOrphaned(PackageManagerService.java:18419)
at com.android.server.pm.PackageManagerService.deletePackage(PackageManagerService.java:15836)
at com.android.server.pm.PackageInstallerService.uninstall(PackageInstallerService.java:888)
at com.android.server.pm.PackageManagerShellCommand.runUninstall(PackageManagerShellCommand.java:792)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:118)
at android.os.ShellCommand.exec(ShellCommand.java:94)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:18682)
at android.os.Binder.shellCommand(Binder.java:468)
at android.os.Binder.onTransact(Binder.java:367)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:2387)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:3150)
at android.os.Binder.execTransact(Binder.java:565)
So what can I do to install GBoard again?
Fairphone 2, Android 7.1.2, «Fairphone Open», root enabled
У меня почти 6000 данных в локальной базе данных. На одном фрагменте я получаю одно поле, то есть «Код EAN» из этой записи, что составляет почти 6000. Теперь я установил эти данные в ArrayList. После этого я установил этот ArrayList в адаптере AutoTextCompleteView. Когда я ищу, я AutoTextCompleteView и через некоторое время зависает моя страница. Мой фрагмент не отвечает. Я смущен, это связано с тяжелыми данными или чем-то еще. Пожалуйста помоги.
Код:
if (getCodeType.equals("art")) {
modelProductCodeList = databaseHelper.getProductsArticleCode();
for (int k = 0; k < modelProductCodeList.size(); k++) {
productCodeList.add(modelProductCodeList.get(k).getArticle_code());
}
actSearchCode.setAdapter(null);
adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, android.R.id.text1, productCodeList);
actSearchCode.setAdapter(adapter);
}
rgGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
if (i == R.id.rdbArticleCode) {
actSearchCode.setText("");
getCodeType = "art";
modelProductCodeList = databaseHelper.getProductsArticleCode();
databaseHelper.close();
productCodeList.clear();
for (int k = 0; k < modelProductCodeList.size(); k++) {
productCodeList.add(modelProductCodeList.get(k).getArticle_code());
}
actSearchCode.setAdapter(null);
adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, android.R.id.text1, productCodeList);
actSearchCode.setAdapter(adapter);
} else if (i == R.id.rdbEANCode) {
actSearchCode.setText("871128");
getCodeType = "ean";
modelProductCodeList = databaseHelper.getProductsEANCode();
databaseHelper.close();
productCodeList.clear();
for (int k = 0; k < modelProductCodeList.size(); k++) {
productCodeList.add(modelProductCodeList.get(k).getEan_code());
}
actSearchCode.setAdapter(null);
adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, android.R.id.text1, productCodeList);
actSearchCode.setAdapter(adapter);
}
}
});
actSearchCode.setThreshold(3);
actSearchCode.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(actSearchCode.getApplicationWindowToken(), 0);
Fragment fragment = new ProductDetailFragment();
FragmentManager fragmentManager = getFragmentManager(); // this is basically context of the class
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Bundle bundle = new Bundle();
bundle.putString("product_art", (String) adapterView.getItemAtPosition(i));
bundle.putString("source_type", getCodeType);
fragment.setArguments(bundle);
fragmentTransaction.replace(R.id.frame, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
Весь код фрагмента
public class SearchProductFragment extends Fragment implements View.OnClickListener {
ImageButton imgBarcodeScan;
AutoCompleteTextView actSearchCode;
RadioButton rdbArticleCode, rdbEANCode;
RadioGroup rgGroup;
ImageView imgClose,imgSourceClose;
String getCodeType = "art";
DatabaseHelper databaseHelper;
ArrayList<ModelProductDetail> modelProductArticleCodeList;
ArrayList<ModelProductDetail> modelProductCodeList;
ArrayList<ModelUnrecognisedCode> modelUnrecognisedCodeArrayList;
ArrayList<ModelProductDetail> singleProductDetailList;
ArrayList<ModelUnrecognisedCode> singleUnrecognisedCheck;
List<String> productCodeList;
private ZBarScannerView scannerView;
private LayoutInflater mInflater;
private ViewGroup mContainer;
ViewGroup placeholder;
private static final int REQUEST_CAMERA = 1;
String article_code;
Boolean unrecognised_alert;
String unrecognised_code = "";
ArrayAdapter<String> adapter;
int codeValue;
KeyEvent keyevent;
// scan code
ScanDevice sm;
private final static String SCAN_ACTION = "scan.rcv.message";
private String barcodeStr = "";
private BroadcastReceiver mScanReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
byte[] barocode = intent.getByteArrayExtra("barocode");
int barocodelen = intent.getIntExtra("length", 0);
byte temp = intent.getByteExtra("barcodeType", (byte) 0);
android.util.Log.i("debug", "----codetype--" + temp);
barcodeStr = new String(barocode, 0, barocodelen);
Log.e("TAG", " barcodeStr" + barcodeStr);
// showScanResult.setText(barcodeStr);
sm.stopScan();
codeValue = 1;
if (! (barcodeStr.equals(""))){
singleProductDetailList = databaseHelper.getProductByEANCode(barcodeStr);
if (singleProductDetailList.size() != 0){
Fragment fragment = new ProductDetailFragment();
FragmentManager fragmentManager = getFragmentManager(); // this is basically context of the class
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Bundle bundle = new Bundle();
bundle.putString("product_art", barcodeStr);
bundle.putString("source_type", "ean");
fragment.setArguments(bundle);
fragmentTransaction.replace(R.id.frame, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
else {
singleUnrecognisedCheck = new ArrayList<>();
singleUnrecognisedCheck = databaseHelper.getUnrecognisedByCode(barcodeStr);
Vibrator vibrator = (Vibrator) context.getSystemService(context.VIBRATOR_SERVICE);
vibrator.vibrate(1000);
MediaPlayer mp = MediaPlayer.create(context, R.raw.beep);
mp.start();
if (singleUnrecognisedCheck.size() == 0){
getDialog();
}
else {
Toast.makeText(getActivity(),R.string.unrecognised_code_has_been_added, Toast.LENGTH_SHORT).show();
}
}
}
}
};
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_search_product, container, false);
mInflater = inflater;
mContainer = container;
getIntializedID(v);
placeholder = (ViewGroup) v;
return placeholder;
}
private void getIntializedID(View view) {
//scan device code
sm = new ScanDevice();
//
imgBarcodeScan = (ImageButton) view.findViewById(R.id.imgBarcodeScan);
rgGroup = (RadioGroup) view.findViewById(R.id.rgGroup);
actSearchCode = (AutoCompleteTextView) view.findViewById(R.id.actSearchCode);
imgClose = (ImageView) view.findViewById(R.id.imgClose);
imgSourceClose = (ImageView) view.findViewById(R.id.imgSourceClose);
databaseHelper = new DatabaseHelper(getActivity());
modelProductCodeList = new ArrayList<>();
productCodeList = new ArrayList<>();
singleProductDetailList = new ArrayList<>();
imgBarcodeScan.setOnClickListener(this);
imgClose.setOnClickListener(this);
// new chnage in code
actSearchCode.setText("");
actSearchCode.setAdapter(null);
actSearchCode.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
//do nothing
if (actSearchCode.getText().length() == 0){
if (getCodeType.equals("ean")){
actSearchCode.setText("871128");
}
else{
actSearchCode.setText("");
}
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
//do nothing
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.length() != 0) {
imgClose.setVisibility(View.VISIBLE);
imgSourceClose.setVisibility(View.GONE);
} else {
imgClose.setVisibility(View.GONE);
imgSourceClose.setVisibility(View.VISIBLE);
}
}
});
adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, android.R.id.text1, productCodeList);
actSearchCode.setAdapter(adapter);
// sample code barcode
}
public void changeFragments(Fragment fragment) {
FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
@Override
public void onClick(View view) {
if (view.getId() == R.id.imgBarcodeScan) {
//MediaPlayer mp = MediaPlayer.create(getActivity(), R.raw.beep);
// mp.start();
//scanCode(view);
// onKeyDown(301, keyevent);
Intent in = new Intent(getActivity(), ScanActivity.class);
startActivity(in);
}
else if (view.getId() == R.id.imgClose){
if (getCodeType.equals("ean")){
actSearchCode.setText("871128");
}
else {
actSearchCode.setText("");
}
}
}
@Override
public void startActivityForResult(Intent intent, int requestCode) {
super.startActivityForResult(intent, requestCode);
}
private void getDialog() {
final Dialog d = new Dialog(getActivity());
d.setContentView(R.layout.dialog_unrecognised_code);
d.setCanceledOnTouchOutside(false);
d.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
final EditText etCode = (EditText) d.findViewById(R.id.etCode);
final EditText etrecognisedComment = (EditText) d.findViewById(R.id.etrecognisedComment);
ImageView imgClose = (ImageView) d.findViewById(R.id.imgClose);
ImageButton ibSubmit = (ImageButton) d.findViewById(R.id.ibSubmit);
if (codeValue == 1){
etCode.setText(barcodeStr);
}else if (codeValue == 2) {
etCode.setText(unrecognised_code);
}
imgClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
KEY_UNRECOGNISED_CODE = "";
d.dismiss();
}
});
ibSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SessionManager session = new SessionManager(getContext().getApplicationContext());
HashMap<String, String> user = session.getSelectedShopDetail();
ModelUnrecognisedCode modelUnrecognisedCode = new ModelUnrecognisedCode();
modelUnrecognisedCode.setUnrecognised_code(etCode.getText().toString());
modelUnrecognisedCode.setUnrecognised_comment(etrecognisedComment.getText().toString());
modelUnrecognisedCode.setShop_id(user.get("shop_id"));
modelUnrecognisedCode.setShop_name_fr(user.get("shop_name_fr"));
modelUnrecognisedCode.setShop_name_nl(user.get("shop_name_nl"));
databaseHelper.addUnrecognisedCode(modelUnrecognisedCode);
// changeFragments(new SearchProductFragment());
modelUnrecognisedCodeArrayList = new ArrayList<>();
modelUnrecognisedCodeArrayList = databaseHelper.getUnrecognisedCode();
Toast.makeText(getActivity(), R.string.unrecognised_code_added_in_cart,Toast.LENGTH_SHORT).show();
KEY_UNRECOGNISED_CODE = "";
d.dismiss();
}
});
d.show();
}
public void onKeyDown(int keyCode, KeyEvent event) {
int charCode = event.getKeyCode();
System.out.println("charCode = " + keyCode +" "+event);
//sm.openScan();
if (charCode == 302 || charCode == 301 || charCode == 303) {
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(actSearchCode.getApplicationWindowToken(), 0);
System.out.println("openScannerL = " + sm.getOutScanMode());
sm.openScan();
} else if (charCode == 82) {
} else {
sm.closeScan();
}
}
@Override
public void onPause() {
// TODO Auto-generated method stub
super.onPause();
if (sm != null) {
sm.stopScan();
}
getActivity().unregisterReceiver(mScanReceiver);
}
@Override
public void onResume() {
// TODO Auto-generated method stub
super.onResume();
IntentFilter filter = new IntentFilter();
filter.addAction(SCAN_ACTION);
getActivity().registerReceiver(mScanReceiver, filter);
// article code start
modelProductCodeList.clear();
productCodeList.clear();
if (getCodeType.equals("art")) {
modelProductCodeList.clear();
productCodeList.clear();
modelProductCodeList = databaseHelper.getProductsArticleCode();
for (int k = 0; k < modelProductCodeList.size(); k++) {
productCodeList.add(modelProductCodeList.get(k).getArticle_code());
}
}
rgGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
if (i == R.id.rdbArticleCode) {
actSearchCode.setText("");
getCodeType = "art";
modelProductCodeList.clear();
productCodeList.clear();
modelProductCodeList = databaseHelper.getProductsArticleCode();
databaseHelper.close();
for (int k = 0; k < modelProductCodeList.size(); k++) {
productCodeList.add(modelProductCodeList.get(k).getArticle_code());
}
adapter.notifyDataSetChanged();
} else if (i == R.id.rdbEANCode) {
actSearchCode.setText("871128");
getCodeType = "ean";
modelProductCodeList.clear();
productCodeList.clear();
modelProductCodeList = databaseHelper.getProductsEANCode();
databaseHelper.close();
for (int k = 0; k < modelProductCodeList.size(); k++) {
productCodeList.add(modelProductCodeList.get(k).getEan_code());
}
adapter.notifyDataSetChanged();
}
}
});
actSearchCode.setThreshold(3);
actSearchCode.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(actSearchCode.getApplicationWindowToken(), 0);
Fragment fragment = new ProductDetailFragment();
FragmentManager fragmentManager = getFragmentManager(); // this is basically context of the class
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Bundle bundle = new Bundle();
bundle.putString("product_art", (String) adapterView.getItemAtPosition(i));
bundle.putString("source_type", getCodeType);
fragment.setArguments(bundle);
fragmentTransaction.replace(R.id.frame, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
//end
if (!(KEY_UNRECOGNISED_CODE.equals(""))) {
if (!(KEY_SOURCE_CODE.equals(""))){
Fragment fragment = new ProductDetailFragment();
FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); // this is basically context of the class
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Bundle bundle = new Bundle();
bundle.putString("product_art",KEY_UNRECOGNISED_CODE);
bundle.putString("source_type", KEY_SOURCE_CODE);
fragment.setArguments(bundle);
fragmentTransaction.replace(R.id.frame, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
KEY_SOURCE_CODE = "";
KEY_UNRECOGNISED_CODE = "";
}
else {
unrecognised_code = KEY_UNRECOGNISED_CODE;
codeValue = 2;
getDialog();
}
}
if (getArguments() != null) {
unrecognised_alert = getArguments().getBoolean("unrecognised_alert");
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
}
Gboard kept crashing when trying to open the settings, so I wanted to uninstall and reinstall it. Google Play Store kept giving me the error code 910, the advice for that was installing it with ADB.
The command
adb install -r /home/fabian/Downloads/com.google.android.inputmethod.latin_7.9.7.230658658-release-armeabi-v7a-26790713_minAPI21(armeabi-v7a)(nodpi)_apkmirror.com.apk
gives me the output
Failed to install /home/fabian/Downloads/com.google.android.inputmethod.latin_7.9.7.230658658-release-armeabi-v7a-26790713_minAPI21(armeabi-v7a)(nodpi)_apkmirror.com.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install com.google.android.inputmethod.latin without first uninstalling package running as com.android.inputmethod.latin]
This is weird, since with the -r flag it should have no problem with an app that is already installed. Apart from that, it is not installed, I checked the app list, the /system/app directory, as well as /data/data. And when I run
adb uninstall com.google.android.inputmethod.latin
, the output is:
Exception occurred while dumping:
java.lang.IllegalArgumentException: Unknown package: com.google.android.inputmethod.latin
at com.android.server.pm.Settings.isOrphaned(Settings.java:4134)
at com.android.server.pm.PackageManagerService.isOrphaned(PackageManagerService.java:18419)
at com.android.server.pm.PackageManagerService.deletePackage(PackageManagerService.java:15836)
at com.android.server.pm.PackageInstallerService.uninstall(PackageInstallerService.java:888)
at com.android.server.pm.PackageManagerShellCommand.runUninstall(PackageManagerShellCommand.java:792)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:118)
at android.os.ShellCommand.exec(ShellCommand.java:94)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:18682)
at android.os.Binder.shellCommand(Binder.java:468)
at android.os.Binder.onTransact(Binder.java:367)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:2387)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:3150)
at android.os.Binder.execTransact(Binder.java:565)
So what can I do to install GBoard again?
Fairphone 2, Android 7.1.2, «Fairphone Open», root enabled
Gboard kept crashing when trying to open the settings, so I wanted to uninstall and reinstall it. Google Play Store kept giving me the error code 910, the advice for that was installing it with ADB.
The command
adb install -r /home/fabian/Downloads/com.google.android.inputmethod.latin_7.9.7.230658658-release-armeabi-v7a-26790713_minAPI21(armeabi-v7a)(nodpi)_apkmirror.com.apk
gives me the output
Failed to install /home/fabian/Downloads/com.google.android.inputmethod.latin_7.9.7.230658658-release-armeabi-v7a-26790713_minAPI21(armeabi-v7a)(nodpi)_apkmirror.com.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install com.google.android.inputmethod.latin without first uninstalling package running as com.android.inputmethod.latin]
This is weird, since with the -r flag it should have no problem with an app that is already installed. Apart from that, it is not installed, I checked the app list, the /system/app directory, as well as /data/data. And when I run
adb uninstall com.google.android.inputmethod.latin
, the output is:
Exception occurred while dumping:
java.lang.IllegalArgumentException: Unknown package: com.google.android.inputmethod.latin
at com.android.server.pm.Settings.isOrphaned(Settings.java:4134)
at com.android.server.pm.PackageManagerService.isOrphaned(PackageManagerService.java:18419)
at com.android.server.pm.PackageManagerService.deletePackage(PackageManagerService.java:15836)
at com.android.server.pm.PackageInstallerService.uninstall(PackageInstallerService.java:888)
at com.android.server.pm.PackageManagerShellCommand.runUninstall(PackageManagerShellCommand.java:792)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:118)
at android.os.ShellCommand.exec(ShellCommand.java:94)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:18682)
at android.os.Binder.shellCommand(Binder.java:468)
at android.os.Binder.onTransact(Binder.java:367)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:2387)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:3150)
at android.os.Binder.execTransact(Binder.java:565)
So what can I do to install GBoard again?
Fairphone 2, Android 7.1.2, «Fairphone Open», root enabled
Добрый день.
Несколько месяцев назад команда cyanogenmod стала понемногу выкладывать билды 12 версии своего одноименного детища, основанного на коде Android 5 Lollipop. В начале года, наконец-то, дошла очередь и до Nexus 4. Не откладывая в долгий ящик я прошил одним из первых ночников. Конечно все еще сыровато, то и дело там и сям наблюдаются непереведенные строки, далеко не все цианогеновские фишки присутствуют, но мы то
упоротые фанаты цианогена
знаем, что все это мелочи и с каждым новым билдом ситуация будет все улучшаться.
В принципе, текущий ночник, а на момент написания статьи это билд от 18-го числа, вполне юзабелен. Все заявленные функции Nexus 4 работают штатно, стохастических ребутов и бутлупов не наблюдается. Но… «не было печали — купила баба поросят»
Елозим пальцем…
Как всем известно, Android5 имеет замечательный плоский дизайн, именуемый корпорацией добра Material Design и многим, как и мне он чертовски нравится и возникает непреодолимое желание чтобы все сторонние приложения выглядели так же. К сожалению не все разработчики поспевают за прогрессом, исключением не явилась и клавиатура Swype, которую я использую уже несколько лет, начиная с самых первых бетаверсий.
Если кто-то не в курсе, поясню: команда Swype Inc. несколько лет назад предложила революционный способ ввода текста для мобильных устройств, который позволяет набирать слова практически не отрывая палец от экрана и выпустила одноименное приложение Swype, реализующее этот метод.
Позже появилось еще несколько реализаций: Slide IT, SwiftKey, а в Android 4.2 и штатная клавиатура получила искомый функционал. Но все это, на мой взгляд, было не то, хоть и некоторые из подражателей снискали себя немалую армию фанатов.
А не сменить ли мне клавиатуру…
Некоторое время назад мне на глаза попался обзор клавиатуры из пятого андроида, и отзывы оказались на удивление положительными, а принимая во внимание, что она оформлена в духе Material Design, и что Swype пока не озаботился новой темой (да и тяжелый он, откровенно говоря), было принято решение перейти на клавиатуру Google и потестить-посмотреть.
Итак, на телефоне был установлен билд от 15-го января (cm-12-20150115-NIGHTLY-mako.zip), я отключаю Swype и включаю клавиатуру AOSP. В настройках включен «Непрерывный ввод». Пробуем… и облом 🙁 Непрерывный ввод не работает. Ну что ж, видимо сырость прошивки всему виной (а если бы сразу загуглил, то и статьи, наверняка, не было бы 🙂 ) Я не стал отчаиваться и установил из маркета клавиатуру Google как отдельное приложение. И возрадовался. Она действительно оказалась неплоха. Огорчал только тот факт, что установлены, по сути, две одинаковых клавиатуры, они жрут место и вообще… Не ТРУЪ короче, но делать нечего, ждем свежий билд CM12. Да, нужно сказать, что все остальные способы ввода, кроме голосового я отключил, чтобы не маячили.
О! а вот и билд! cm-12-20150118-NIGHTLY-mako.zip. Установил конечно, порадовался появившейся возможности кастомизации плиток в панели уведомлений, но при попытке включить клавиатуру AOSP получил странную ошибку:

«Это точно какой-то конфликт» — подумал Штирлиц, и удалил клавиатуру Google, установленную из маркета. Оглядываясь сейчас назад я не могу сказать точно, что мной двигало, возможно, всему виной поздний вечер, и уже плохо соображающая голова. Не знаю. Но факт есть факт: Я остался с одним голосовым вводом 
Я снова и снова пытался вызвать диалог смена раскладки, но безжалостный CM покрывал меня матюками на Java:
Ознакомиться с матюками
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.settings/com.android.settings.Settings$InputMethodAndLanguageSettingsActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.preference.PreferenceCategory.removePreference(android.preference.Preference)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2318)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
at android.app.ActivityThread.access$800(ActivityThread.java:147)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5255)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.preference.PreferenceCategory.removePreference(android.preference.Preference)' on a null object reference
at com.android.settings.inputmethod.InputMethodAndLanguageSettings.onCreate(InputMethodAndLanguageSettings.java:179)
at android.app.Fragment.performCreate(Fragment.java:2031)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:863)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
at android.app.BackStackRecord.run(BackStackRecord.java:833)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1452)
at android.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:483)
at com.android.settings.SettingsActivity.switchToFragment(SettingsActivity.java:956)
at com.android.settings.SettingsActivity.onCreate(SettingsActivity.java:582)
at android.app.Activity.performCreate(Activity.java:5933)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2264)
... 10 more
И тебя вылечим, и меня вылечим
Гугление показало, что от этого недуга пострадал не только я. Еще пара человек так же не смогли сменить способ ввода штатными средствами, причем и на Nexus 5 тоже. Значит дело все таки в новом билде CM, поломали таки цианогеновцы что-то в коде. Пофиксят конечно, но до этого момента еще дожить надо, как-то еще вконтактик и воцапчик писать все это время нужно. Значит будем чинить.
Починение, кстати, не сложное, если знать куда бить. А бить вот куда:
- Включаем в опциях разработчика root доступ для ADB, если не был включен
- Разрешаем там же отладку
- Подключаем телефон к компьютеру по USB или юзаем WiFi ADB — это уж кому как удобнее.
- Соединяемся ADB шеллом с телефоном и получаем привилегированный доступ
C:ADB> adb shell $ su - Выполняем одну хитрую команду
# ime set com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME - PROFIT!
Таким образом, кстати, можно включить любую другую, только предварительно нужно просмотреть список возможных способов ввода:
# ime list -a
Дык а с непрерывным вводом-то что?
Уффф… Возможность вводить текст восстановлена, но проблема свайпа в родной клавиатуре так и не решена. И гугление таки дало решение:
Если непрерывный ввод не работает, то нужно любым файловым менеджером с root-доступом зайти в /system/lib/ и переименовать там библиотеку libjni_latinime.so на libjni_latinimegoogle.so и перезагрузить телефон.
… И морды эти еще противные
Ну и раз пошла такая пьянка, решил до кучи еще «разобраться» со смайлами, ибо штатные кроме рвотного рефлекса ничего не вызывают:

Мрак, адъ и Израиль.
Здесь в общем-то все просто, нужно установить Emoji Switcher и изменить иконки смайлов на набор IOS. Теперь смайлы выглядят так:

За сим все, надеюсь кому-то был полезен.
ТЫДЫЩ!!!

PS: Только что установил билд от 19-го числа. Проблема с выбором способа ввода до сих пор не решена.
UPD
Свежие новости: в билде от 20-го числа проблема решена. Кстати, после установки нового ночника, библиотеку libjni_latinime.so нужно снова переименовывать. Неудобненько 🙁
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
Sign in
to your account
Closed
naXa777 opened this issue
Jan 6, 2017
· 21 comments
Closed
GBoard Preferences app keeps crashing
#116
naXa777 opened this issue
Jan 6, 2017
· 21 comments
Comments
I have a Nexus 5 device and I’ve installed Android 7.1.1 AOSP and a customized opengapps aroma package via TWRP.
Everything plays well together except the GBoard not having Russian (Cyrillic) input. In order to fix this I headed to Settings > Languages & input > Virtual keyboard > GBoard and then I see a list of options (like Languages, Preferences, etc.). Tapping on any of them results in the GBoard application crash with the following stacktrace:
01-06 18:29:49.857 2256 5539 I Icing Usage reports 0 indexed 0 rejected 0 imm upload false
01-06 18:29:50.316 917 2394 I ActivityManager START u0 {act=android.intent.action.MAIN cmp=com.android.inputmethod.latin/com.google.android.apps.inputmethod.latin.preference.SettingsActivity (has extras)} from uid 10018 on display 0
01-06 18:29:50.372 7938 7938 D AndroidRuntime Shutting down VM
01-06 18:29:50.376 7938 7938 E AndroidRuntime FATAL EXCEPTION: main
01-06 18:29:50.376 7938 7938 E AndroidRuntime Process: com.android.inputmethod.latin, PID: 7938
01-06 18:29:50.376 7938 7938 E AndroidRuntime java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.inputmethod.latin/com.google.android.apps.inputmethod.latin.preference.SettingsActivity}: java.lang.RuntimeException: Preference xml file not specified
01-06 18:29:50.376 7938 7938 E AndroidRuntime at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at android.app.ActivityThread.-wrap12(ActivityThread.java)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at android.os.Handler.dispatchMessage(Handler.java:102)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at android.os.Looper.loop(Looper.java:154)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at android.app.ActivityThread.main(ActivityThread.java:6119)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at java.lang.reflect.Method.invoke(Native Method)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
01-06 18:29:50.376 7938 7938 E AndroidRuntime Caused by: java.lang.RuntimeException: Preference xml file not specified
01-06 18:29:50.376 7938 7938 E AndroidRuntime at com.google.android.apps.inputmethod.libs.framework.preference.CommonPreferenceFragment.onCreate(PG:26)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at android.app.Fragment.performCreate(Fragment.java:2336)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:949)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at android.app.BackStackRecord.setLastIn(BackStackRecord.java:860)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at android.app.BackStackRecord.calculateFragments(BackStackRecord.java:900)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at android.app.BackStackRecord.run(BackStackRecord.java:728)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1578)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at android.app.FragmentController.execPendingActions(FragmentController.java:371)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at android.app.Activity.performStart(Activity.java:6695)
01-06 18:29:50.376 7938 7938 E AndroidRuntime at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2628)
01-06 18:29:50.376 7938 7938 E AndroidRuntime ... 9 more
01-06 18:29:50.380 917 1133 W ActivityManager Force finishing activity com.android.inputmethod.latin/com.google.android.apps.inputmethod.latin.preference.SettingsActivity
01-06 18:29:50.387 917 1133 W ActivityManager Force finishing activity com.android.inputmethod.latin/com.google.android.apps.inputmethod.latin.preference.SettingsActivity
There are other people experiencing the same problem: (1), (2), (3). I’m using another keyboard as a workaround but I would like to know what’s the cause of this problem.
naXa777
changed the title
GBoard Preferences keeps crashing
GBoard Preferences app keeps crashing
Jan 6, 2017
@naXa777 did you try it with a fully cleared /data/ partition? There are known upgrade issues from the old Keyboard to the new GBoard.
Resolved by reinstalling GBoard as a system app via adb.
Can you please outline the steps? I downgraded to AOSP keyboard for now
bump Same problem on lineage OS.
We build aosp images for several nougat devices (shamu, bullhead, angler, marlin, sailfish) and Gboard preferences seem to work fine. Note that shamu is 32-bit, like hammerhead, which is the device mentioned by the OP.
It seems like this is only an issue when installing opengapps via sideload.
If so, then I don’t know if we can address it by making changes inside aosp_build.
@naXa777 another bump: can you share how you reinstalled gboard to fix this
👍
I’m trying to follow @naXa777 very constructive comment by reading online resources, but all of them so far tell me to remove the app from /system/app. Can’t find GBoard here. I’ll report back here if I figure out a way.
Yeah, same issue for me ,could you please show the details of solution?
@hickscorp The app may be located at /system/app/LatinIMEGooglePrebuilt/LatinIMEGooglePrebuilt.apk
While I believe that the issue was caused by old settings of the previous keyboard, and installing the GBoard with a fully cleared /data partition should work, I personally used these commands to find all references to the GBoard app.
$ adb shell ls -lR | grep inputmethod
$ adb shell ls -lR | grep LatinIMEGooglePrebuilt
Then I’ve manually deleted them. Be careful cause you can delete something important accidentally.
Then I’ve replaced /system/app/LatinIMEGooglePrebuilt/LatinIMEGooglePrebuilt.apk file via adb shell cp ... (requires root permission) and executed adb install -r GBoard.apk in order to run installation process that properly unpacks some native libraries from the apk.
I can confirm that installing «clean» (with Data wipe) gapps with googlekeyboard works fine, no crashes in gboard settings. But all my attempts to fix a «dirty» installation failed — I reinstalled with a wipe.
Upd: i checked on lineage-14.1-20170307
Hi,
Thanks for your response.
Yeah I wiped all data of my phone and re-install it and it seems to work
fine, it might be a conflict between AOSP and Gboard.
Problem solved, thanks a lot.
2017-03-13 20:10 GMT+01:00 Alec Istomin <notifications@github.com>:
…
So this does indeed seem to be an issue caused by GBoard reading old data, which is what mfonville originally suggested 🙂
I think this can be closed.
would be great if «dirtiness» can be handled for googlekeyboard, it might be as easy as cleaning some files or prohibiting dirty flashing (as is done for googlecamera)
agreed, but «aosp_build» is probably not the right place to fix that.
That sounds like something that needs to be done in the project that creates the opengapps zips.
Does anyone have detailed instructions on how this can be fixed? Thanks so much!
I’ve cleared Data partition and installed gapps again, and my issue was fixed.
Is there a way to fix this without resetting everything? On my Fairphone 2 I installed the «Fairphone open» system, updated it to Android 7.1, installed GBoard and the error was already there. There can be no old GBoard data anywhere, since I installed it after the update. So another reset shouldn’t do anything useful. And I also don’t want to reset.
Apart from that, it’s still a bug in OpenGApps and should be fixed, so this report should be reopened.
Sad… I JUST set up my Nexus 9 with slimroms, I have this issue… don’t feel like doing it all again. I guess I’m stuck with default settings. 🙁
@mercster @Fabian42 @songzy12 @wardg32 this issue has nothing to do with the project aosp_build. It cannot be fixed with a change to aosp_build. There is no point in re-opening it.