Форум программистов, компьютерный форум CyberForum.ru

Добавление библиотеки - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android FATAL EXCEPTION: main - проклятая ошибка http://www.cyberforum.ru/android-dev/thread1666573.html
Здравствуйте, в Android Studio ошибок не показывает, но при запуске программы на телефоне выходит такая ошибка 02-19 23:00:53.068 29600-29600/com.sms.phone.sms_sending E/AndroidRuntime: FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity...
Программирование Android Создание voip приложения Доброе, всем, время суток! Есть курсовой проект, по созданию voip приложения. Хотел спросить, какой материал для этого следуют прочитать? И есть ли вообще примеры подобных приложений? Искал, но ничего путного найти не смог. Пожалуйста, подскажите http://www.cyberforum.ru/android-dev/thread1666387.html
Разработка приложения.Вывод html. Картинка по ссылке Программирование Android
Добрый вечер! Подскажите, как реализовать следующие варианты: 1) Я получаю с json html код и вывожу на экран. Сейчас сделал через Html.fromHtml, но там мало тегов, стилей нету. Если еще какие-нибудь варианты? 2)как отобразить картинку на экране по ссылке? Пробовал сделать по этому варианту(Ссылка), но не работает.
Информационный граббер Программирование Android
Необходим граббер, сам я в деле программирование не долго и пока не могу представить именно структуру кода и как он должен выглядеть. Я подрозумеваю так, есть приложение, для этого приложение требуеться что-то вроде информационного граббера, принципом его работы является поиск новых записей на наличие ключевых слов. К примеру я хочу использовать его в таких целях как информирование определенной...
Программирование Android Что за чудеса ?) http://www.cyberforum.ru/android-dev/thread1666170.html
Всем привет. Помогите разобраться с Log-ом. В приложение реализован VideView, управление в нем через MediaPlayer. Файл, загружается с интернета. Все работает, все показывает. Но меня весьма настораживает вот это libcore.io.ErrnoException: close failed: EBADF (Bad file number) at libcore.io.Posix.close(Native Method) at libcore.io.BlockGuardOs.close(BlockGuardOs.java:75) at...
Программирование Android Элементы ExpandebleListView не меняют свой внешний вид при клике Здравствуйте. У меня есть ExpandebleListView, для которого я использую свои разметки для групп и дочерних элементов. И когда у элементов списка есть фон, то они перестают выделяться при клике по ним. Как можно этого избежать? подробнее

Показать сообщение отдельно
BeutiFul BiTcH
1 / 1 / 0
Регистрация: 21.01.2016
Сообщений: 20

Добавление библиотеки - Программирование Android

20.02.2016, 01:50. Просмотров 804. Ответов 5
Метки (Все метки)

Добрый вечер!
Возникла проблема при добавлении в проект библиотек:
org.apache.http. … (org.apache.http.Header, org.apache.http.HttpEntity, org.apache.http.HttpHost, org.apache.http.HttpResponse …)

org.apache.http.client. … (org.apache.http.client.ClientProtocolException, org.apache.http.client.HttpClient, org.apache.http.client.ResponseHandler …)

“Гугл” советует изменить build.grable, но мои эксперименты не завершились успехом
Error: (23, 23) error: cannot find symbol class Header
Error: (24, 23) error: cannot find symbol class HttpHost
Error: (25, 23) error: cannot find symbol class HttpResponse
Error: (26, 38) error: package org.apache.http.client.methods does not exist

Помогите пожалуйста советом как решить проблему
Вот содержимое build.grable:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
apply plugin: 'com.android.application'
android {
    signingConfigs {
        …
    }
    compileSdkVersion 23
    buildToolsVersion '23.0.0'
    defaultConfig {
        …
        minSdkVersion 15
        targetSdkVersion 23
        …
        signingConfig signingConfigs.config
    }
    buildTypes {
        release {
          …
        }
    }
    productFlavors {
    }
}
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.google.android.gms:play-services:8.4.0'
    compile 'org.apache.httpcomponents:httpclient:4.5'
    compile 'com.android.support:design:23.0.0'
}
Добавлено через 53 минуты
В статье про Android 6.0 (API level 23) сказано добавить в build.grable:
Java
1
2
3
android {
    useLibrary 'org.apache.http.legacy'
}
Получаю ошибку:
Error: (13, 0) Gradle DSL method not found: 'useLibrary()'
Possible causes:<ul><li>The project 'XXX' may be using a version of the Android Gradle plug-in that does not contain the method (e.g. 'testCompile' was added in 1.1.0).
<a href="fixGradleElements">Fix plugin version and sync project</a></li><li>The project 'ХХХ' may be using a version of Gradle that does not contain the method.
<a href="open.wrapper.file">Open Gradle wrapper file</a></li><li>The build file may be missing a Gradle plugin.
<a href="apply.gradle.plugin">Apply Gradle plugin</a></li>


Добавлено через 59 минут
Клик по Fix plugin version and sync project помог с добавлением библиотеки, но сразу же появилась новая проблема с переходом на API 23 - Notifications:
This release removes the Notification.setLatestEventInfo() method. Use the Notification.Builder class instead to construct notifications. To update a notification repeatedly, reuse the Notification.Builder instance. Call the build() method to get updated Notification instances.
The adb shell dumpsys notification command no longer prints out your notification text. Use the adb shell dumpsys notification --noredact command instead to print out the text in a notification object.


Кто-то знает как использовать Notification.Builder вместо Notification.setLatestEventInfo()???

P.S.: Думаю уместней переименовать тему на «Проблемы после обновления до API 23»

Добавлено через 39 минут
Сама спросила – сама отвечу, вдруг кому-то пригодится. Как уже было сказано с AIP23 метод .setLatestEventInfo удален.
com.google.android.vending.expansion.downloader.impl.DownloadNotification использует данный метод целых два раза. Если вам нужно юзать файлы дополнений в своем приложении(поддержка obb архивов), замените содержимое com.google.android.vending.expansion.downloader.impl.DownloadNotification на следующий код:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
package com.google.android.vending.expansion.downloader.impl;
 
import android.annotation.TargetApi;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.os.Build;
import android.os.Messenger;
 
import com.google.android.vending.expansion.downloader.DownloadProgressInfo;
import com.google.android.vending.expansion.downloader.DownloaderClientMarshaller;
import com.google.android.vending.expansion.downloader.Helpers;
import com.google.android.vending.expansion.downloader.IDownloaderClient;
 
import com.android.vending.expansion.downloader.R;
/**
 * This class handles displaying the notification associated with the download
 * queue going on in the download manager. It handles multiple status types;
 * Some require user interaction and some do not. Some of the user interactions
 * may be transient. (for example: the user is queried to continue the download
 * on 3G when it started on WiFi, but then the phone locks onto WiFi again so
 * the prompt automatically goes away)
 * <p/>
 * The application interface for the downloader also needs to understand and
 * handle these transient states.
 */
public class DownloadNotification implements IDownloaderClient {
 
    private int mState;
    private final Context mContext;
    private final NotificationManager mNotificationManager;
    private String mCurrentTitle;
 
    private IDownloaderClient mClientProxy;
    final ICustomNotification mCustomNotification;
    private Notification.Builder mNotificationBuilder;
    private Notification.Builder mCurrentNotificationBuilder;
    private CharSequence mLabel;
    private String mCurrentText;
    private PendingIntent mContentIntent;
    private DownloadProgressInfo mProgressInfo;
 
    static final String LOGTAG = "DownloadNotification";
    static final int NOTIFICATION_ID = LOGTAG.hashCode();
 
    public PendingIntent getClientIntent() {
        return mContentIntent;
    }
 
    public void setClientIntent(PendingIntent mClientIntent) {
        this.mContentIntent = mClientIntent;
    }
 
    public void resendState() {
        if (null != mClientProxy) {
            mClientProxy.onDownloadStateChanged(mState);
        }
    }
 
    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    @Override
    public void onDownloadStateChanged(int newState) {
        if (null != mClientProxy) {
            mClientProxy.onDownloadStateChanged(newState);
        }
        if (newState != mState) {
            mState = newState;
            if (newState == IDownloaderClient.STATE_IDLE || null == mContentIntent) {
                return;
            }
            int stringDownloadID;
            int iconResource;
            boolean ongoingEvent;
 
            // get the new title string and paused text
            switch (newState) {
                case 0:
                    iconResource = android.R.drawable.stat_sys_warning;
                    stringDownloadID = R.string.state_unknown;
                    ongoingEvent = false;
                    break;
 
                case IDownloaderClient.STATE_DOWNLOADING:
                    iconResource = android.R.drawable.stat_sys_download;
                    stringDownloadID = Helpers.getDownloaderStringResourceIDFromState(newState);
                    ongoingEvent = true;
                    break;
 
                case IDownloaderClient.STATE_FETCHING_URL:
                case IDownloaderClient.STATE_CONNECTING:
                    iconResource = android.R.drawable.stat_sys_download_done;
                    stringDownloadID = Helpers.getDownloaderStringResourceIDFromState(newState);
                    ongoingEvent = true;
                    break;
 
                case IDownloaderClient.STATE_COMPLETED:
                case IDownloaderClient.STATE_PAUSED_BY_REQUEST:
                    iconResource = android.R.drawable.stat_sys_download_done;
                    stringDownloadID = Helpers.getDownloaderStringResourceIDFromState(newState);
                    ongoingEvent = false;
                    break;
 
                case IDownloaderClient.STATE_FAILED:
                case IDownloaderClient.STATE_FAILED_CANCELED:
                case IDownloaderClient.STATE_FAILED_FETCHING_URL:
                case IDownloaderClient.STATE_FAILED_SDCARD_FULL:
                case IDownloaderClient.STATE_FAILED_UNLICENSED:
                    iconResource = android.R.drawable.stat_sys_warning;
                    stringDownloadID = Helpers.getDownloaderStringResourceIDFromState(newState);
                    ongoingEvent = false;
                    break;
 
                default:
                    iconResource = android.R.drawable.stat_sys_warning;
                    stringDownloadID = Helpers.getDownloaderStringResourceIDFromState(newState);
                    ongoingEvent = true;
                    break;
            }
            mCurrentText = mContext.getString(stringDownloadID);
            mCurrentTitle = mLabel.toString();
            mCurrentNotificationBuilder.setTicker(mLabel + ": " + mCurrentText);
            mCurrentNotificationBuilder.setSmallIcon(iconResource);
            mCurrentNotificationBuilder.setContentTitle(mCurrentTitle);
            mCurrentNotificationBuilder.setContentText(mCurrentText);
            mCurrentNotificationBuilder.setContentIntent(mContentIntent);
            mCurrentNotificationBuilder.setOngoing(ongoingEvent);
            mCurrentNotificationBuilder.setAutoCancel(!ongoingEvent);
            mNotificationManager.notify(NOTIFICATION_ID, mCurrentNotificationBuilder.build());
        }
    }
 
    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    @Override
    public void onDownloadProgress(DownloadProgressInfo progress) {
        mProgressInfo = progress;
        if (null != mClientProxy) {
            mClientProxy.onDownloadProgress(progress);
        }
        if (progress.mOverallTotal <= 0) {
            // we just show the text
            mNotificationBuilder.setTicker(mCurrentTitle);
            mNotificationBuilder.setSmallIcon(android.R.drawable.stat_sys_download);
            mNotificationBuilder.setContentTitle(mCurrentTitle);
            mNotificationBuilder.setContentText(mCurrentText);
            mNotificationBuilder.setContentIntent(mContentIntent);
            mCurrentNotificationBuilder = mNotificationBuilder;
        } else {
            mCustomNotification.setCurrentBytes(progress.mOverallProgress);
            mCustomNotification.setTotalBytes(progress.mOverallTotal);
            mCustomNotification.setIcon(android.R.drawable.stat_sys_download);
            mCustomNotification.setPendingIntent(mContentIntent);
            mCustomNotification.setTicker(mLabel + ": " + mCurrentText);
            mCustomNotification.setTitle(mLabel);
            mCustomNotification.setTimeRemaining(progress.mTimeRemaining);
            mCurrentNotificationBuilder = mCustomNotification.updateNotification(mContext);
        }
        mNotificationManager.notify(NOTIFICATION_ID, mCurrentNotificationBuilder.build());
    }
 
    public interface ICustomNotification {
        void setTitle(CharSequence title);
 
        void setTicker(CharSequence ticker);
 
        void setPendingIntent(PendingIntent mContentIntent);
 
        void setTotalBytes(long totalBytes);
 
        void setCurrentBytes(long currentBytes);
 
        void setIcon(int iconResource);
 
        void setTimeRemaining(long timeRemaining);
 
        Notification.Builder updateNotification(Context c);
    }
 
    /**
     * Called in response to onClientUpdated. Creates a new proxy and notifies
     * it of the current state.
     *
     * @param msg the client Messenger to notify
     */
    public void setMessenger(Messenger msg) {
        mClientProxy = DownloaderClientMarshaller.CreateProxy(msg);
        if (null != mProgressInfo) {
            mClientProxy.onDownloadProgress(mProgressInfo);
        }
        if (mState != -1) {
            mClientProxy.onDownloadStateChanged(mState);
        }
    }
 
    /**
     * Constructor
     *
     * @param ctx The context to use to obtain access to the Notification
     *            Service
     */
    DownloadNotification(Context ctx, CharSequence applicationLabel) {
        mState = -1;
        mContext = ctx;
        mLabel = applicationLabel;
        mNotificationManager = (NotificationManager)
                mContext.getSystemService(Context.NOTIFICATION_SERVICE);
        mCustomNotification = CustomNotificationFactory
                .createCustomNotification();
        mNotificationBuilder = new Notification.Builder(ctx);
        mCurrentNotificationBuilder = mNotificationBuilder;
 
    }
 
    @Override
    public void onServiceConnected(Messenger m) {
    }
 
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru