2015-05-09 2 views
0

Я использую eclipse для Android, и я хочу добавить в свое приложение банку с волейболом и Google Cloud Message. Кроме того, я хочу добавить эти два имени в тег приложения. Я уже знаю, что мы можем использовать тег приложения только один раз в файле манифеста. Есть ли другой способ добавить эти две библиотеки в мое приложение?Как добавить два имени в тег приложения с помощью Android

android:name="com.google.gcm.Controller" // This is for GCM 
android:name="volley.AppController" // This is for Volley 
+0

Почему в теге приложения, когда приложение может иметь только одно имя? Возможно, вы хотите назвать различные мероприятия? –

+0

В качестве дополнительного вопроса. Какую зависимость волейбола вы используете? Насколько я вижу, источник волейбола не включает в себя «AppController.java» https://android.googlesource.com/platform/frameworks/volley/ – mikepenz

ответ

0

Сначала я распространяю приложение на AppController.java (volley)

public class AppController extends Application 

Далее я расширяет AppController к Controller.java (ГКМ)

public class Controller extends AppController 

Наконец я добавил имя в тег приложения GCM имя контроллера

android:name="com.google.gcm.Controller" 

Теперь его работа для меня , Спасибо ..

0

Согласно documentation, только одно приложение тег может быть вставлен в манифест.

Цитата документ:

Только явные и прикладные элементы необходимы, каждый из них должны присутствовать и может произойти только один раз.

Я могу понять ваше последствие, и я думаю, что решение состоит в объединении кода обоих классов (controller and AppController) в одном.

+0

Привет Мохаммад Арман, Контроллер и AppController - это разные классы lib, также я не могут объединить оба класса. Спасибо за быстрый ответ –

+0

У меня тоже была такая же проблема. Я сделал это, создал еще один класс MasterController и скопировал все методы и классы обоих контроллеров. Затем я удалил 2 старых контроллера. Он создал ошибки. Затем я импортировал новый класс во все действия, в которых он создал ошибку. И в манифесте просто добавлен андроид: name = ". MasterController" –

0

У вас может быть только один тег приложения, но это не должно быть проблемой.

Просто создать Application простирающийся от com.google.gcm.Controller и добавить необходимый код для залпа в него (Это AppController от linked tutorial. С уважением, вероятно, отличается)

package info.androidhive.volleyexamples.app; 

import info.androidhive.volleyexamples.volley.utils.LruBitmapCache; 
import android.app.Application; 
import android.text.TextUtils; 

import com.android.volley.Request; 
import com.android.volley.RequestQueue; 
import com.android.volley.toolbox.ImageLoader; 
import com.android.volley.toolbox.Volley; 

public class AppController extends Application { 

    public static final String TAG = AppController.class 
      .getSimpleName(); 

    private RequestQueue mRequestQueue; 
    private ImageLoader mImageLoader; 

    private static AppController mInstance; 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     mInstance = this; 
    } 

    public static synchronized AppController getInstance() { 
     return mInstance; 
    } 

    public RequestQueue getRequestQueue() { 
     if (mRequestQueue == null) { 
      mRequestQueue = Volley.newRequestQueue(getApplicationContext()); 
     } 

     return mRequestQueue; 
    } 

    public ImageLoader getImageLoader() { 
     getRequestQueue(); 
     if (mImageLoader == null) { 
      mImageLoader = new ImageLoader(this.mRequestQueue, 
        new LruBitmapCache()); 
     } 
     return this.mImageLoader; 
    } 

    public <T> void addToRequestQueue(Request<T> req, String tag) { 
     // set the default tag if tag is empty 
     req.setTag(TextUtils.isEmpty(tag) ? TAG : tag); 
     getRequestQueue().add(req); 
    } 

    public <T> void addToRequestQueue(Request<T> req) { 
     req.setTag(TAG); 
     getRequestQueue().add(req); 
    } 

    public void cancelPendingRequests(Object tag) { 
     if (mRequestQueue != null) { 
      mRequestQueue.cancelAll(tag); 
     } 
    } 
} 

Source

Если вы сделали поэтому добавьте android:name=".AppController" к вашему AndroidManifest.xml

Смежные вопросы