2017-02-21 5 views
0

Я переношу из Eclipse в Android Studio. Когда я интегрирую сервисы Google-play в свой проект, я не могу установить APK на устройство со следующей ошибкой: «INSTALL_PARSE_FAILED_MANIFEST_MALFORMED». Почему eerrApparently Android Studio и эта библиотека имеют проблему совместимости с именем пакета моего старого приложения, которое начинается с прописной буквы. Когда я изменяю первую букву имени пакета (ApplicationId в Android Studio), чтобы опускаться, все в порядке. Обратите внимание, что имя моего базового пакета - все строчные. Проблема заключается в ApplicationId.Google-play-services и INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

Приложение находится в прямом эфире в магазине в течение нескольких лет, и я не хочу загружать его в качестве нового приложения.

Действительно ли это на самом деле - есть ли обходной путь?

ответ

0

Пожалуйста, обратитесь к Naming Conventions

Вы не можете просто использовать верхний регистр с именем пакета больше.

+0

Просто, чтобы уточнить, это мое имя приложения ApplicationId, а не мое имя пакета в манифесте. Все хорошо работает в Eclipse. Он также работал в Android Studio, прежде чем я добавил сервисы Google. Я теперь застрял с Eclipse? Я не могу поверить, что обходного пути для этого не существует. –

0

Это работает для меня:

Вместо того, чтобы импортировать проект затмение в Android Studio,

(1) Создание нового проекта Android-студия с именем пакета, который вы уже поставили на Google Play Маркета но используйте все нижние регистры.

(2) Затем скопируйте все свои файлы в проект Android Studio.

(3) Измените идентификатор пакета в файле build.gradle (Module App) с исходным именем пакета с верхним регистром (см. Ниже) и синхронизацией (это создаст имя пакета в apk с исходным именем пакета с символами в верхнем регистре, и она будет загружать на Google Play Store, и заменить старый !!!

(4) Это установлено APK (с прописным именем пакета) на моем тестовый телефон, и он работал отлично.

apply plugin: 'com.android.application' 
android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 
    defaultConfig { 
     applicationId "DrWebsterApps.New.England.Patriots.Game" 
     minSdkVersion 9 
     targetSdkVersion 21 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 
dependencies { 
    compile 'com.android.support:appcompat-v7:21.0.0' 
    compile 'com.google.android.gms:play-services:7.0.0' 
} 

(5) в качестве тестового примера - это код, который выдает имя пакета в настоящее время для приложения:

import android.app.AlertDialog; 
import android.content.Context; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.app.Activity; 
import android.app.ActivityManager; 
import android.app.ListActivity; 
import android.app.ActivityManager.RunningAppProcessInfo; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.widget.LinearLayout; 
import android.widget.TextView; 
import java.util.List; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     /* put this in the manifest.xml file!!! 
      <uses-permission android:name="android.permission.GET_TASKS"/> 
*/ 
     ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 
     List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1); 

     createDialogAnswer(taskInfo.get(0).topActivity.getPackageName()); 


} 

    public void createDialogAnswer(String msg) { 

     AlertDialog.Builder adb; 
     LinearLayout linear = new LinearLayout(this); 
     linear.setBackgroundColor(Color.RED); 
     linear.setOrientation(LinearLayout.VERTICAL); 
     adb = new AlertDialog.Builder(this); 
     // String team = (string)R.string.app_name; 
     adb.setTitle(" Trivia App"); 
     adb.setView(linear); 

     LayoutInflater mInflater = (LayoutInflater) this 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View PopUpView = mInflater.inflate(R.layout.scores, linear); 
     TextView mytext = (TextView) PopUpView.findViewById(R.id.QPopUp); 

     // mytext.setTextColor(getResources().getColor(R.color.White)); 
     // mytext.setTextSize(getResources().getDimension(R.dimen.aboutApp_text_size)); 

     mytext.append(msg + " \n"); 

     adb.setNegativeButton("Quit", myDialogOnClickListener); 
     adb.show(); 

    } 

    DialogInterface.OnClickListener myDialogOnClickListener = new DialogInterface.OnClickListener() { 

     public void onClick(DialogInterface v, int x) { 

     finish(); 
     } 
    }; 
Смежные вопросы