Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Ошибка в коде и подключенных библиотеках

Здравствуйте!Создаю проект в Android Studio 2.1.1 на основе Navigation Drawer Activity. Используется API 19-23. К проекту подключены следующие библиотеки:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
В Грэдл включены:
Java
1
2
3
4
5
6
7
8
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:design:23.4.0'
    compile 'com.android.support:support-v4:23.4.0'
    compile 'com.android.support:support-v13:23.4.0'
}
В Action Bar находятся стандартные кнопки, я создал один фрагмент для пробы его работы.Вот код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();
            FragmentTransaction ftrans = getFragmentManager(). beginTransaction();
        if (id == R.id.nav_camera) {
            ftrans.replace(R.id.conteiner, fimport);
        } else if (id == R.id.nav_gallery) {
 
        } else if (id == R.id.nav_slideshow) {
 
        } else if (id == R.id.nav_manage) {
 
        } else if (id == R.id.nav_share) {
 
        } else if (id == R.id.nav_send) {
 
        } ftrans.commit();
 
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
Но при выводе приложения появляется ошибка вывода фрагментов:
Java
1
2
3
Error:(90, 80) error: incompatible types
required: android.support.v4.app.FragmentTransaction
found:    android.app.FragmentTransaction
голову всю себе взорвал уже, но понять не могу, почему он пишет что нужен android.support.v4.app.FragmentTransaction когда он подключен.
Ответ:
Java
1
FragmentTransaction ftrans = getFragmentManager(). beginTransaction();
Видимо
Java
1
getSupportFragmentManager().beginTransaction();
надо
Вопрос: Учусь подключать библиотеку?

нужно подключить к проекту эту библиотеку -

как-то раз я это пробовал делать, брал папку с библиотекой, ложил ее в libreries проекта, добавлял в dependencies и вуаля....

а как с этой быть?

ну кинул я в грэдл это:
Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
repositories {
    jcenter()
    maven { url "https://jitpack.io" }
}
 
dependencies {
    compile 'com.github.dmytrodanylyk:android-morphing-button:98a4986e56' // commit hash
}
а и что дальше, там когда скачиваешь там просто проект с сэмплами?

или какой-то импорт для этого есть подскажите пожалуйста как это сделать?
Ответ: disx, на github всё написано:

Integration

The lib is available on .

repositories {
jcenter()
maven { url "https://jitpack.io" }
}

dependencies {
compile 'com.github.dmytrodanylyk:android-morphing-button:98a4986e56' // commit hash
}


То есть добавить нужно эти строки в билд.градл и сделать синхронизацию проекта
Вопрос: Android Studio, импорт не видит в проекте один из классов?

Скачал библиотеку в виде сорскода, подключил к проекту все хорошо импортнулось, но один из классов с каким-то сереньким значком и его не видит когда к нему обращаешься, на скрине суть проблемы:




подскажите пожалуйста кто знает?
Ответ: package com.dis.bgps.bubbleEngine;
Вопрос: Как быстро подключить готовую БД SQLite к проекту Android

Решил написать мини гайд по подключению готовой БД, мне это пригодится неоднократно, надеюсь кому-то будет полезно:
  1. Создать папку Assets, New -> Folder -> Assets Folder
  2. Скопировать вашу БД в папку Assets( в моем случае файл называется Wheather.sqlite)
  3. Подключить библиотеку SQLiteAssetHelper
    Java
    1
    2
    3
    
    dependencies {
        compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'
    }
  4. Создать класс для работы с БД (У меня это DatabaseHandler), унаследованный от класса SQLiteAssetHelper
    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
    
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
     
    import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;
    import java.util.ArrayList;
     
    public class DatabaseHandler extends SQLiteAssetHelper {
     
        private static final String DATABASE_NAME = "Wheather.sqlite";
        private static final int DATABASE_VERSION = 1;
        private static final String TABLE_WHEATHER = "Wheather";
        
        private static DatabaseHandler ourInstance;
     
        public static synchronized DatabaseHandler getInstance(Context context) {
     
            if (ourInstance == null)
                ourInstance = new DatabaseHandler(context);
     
            return ourInstance;
        }
     
        private DatabaseHandler(Context context) {
            super(context, DATABASE_NAME, context.getExternalFilesDir(null).getAbsolutePath(), null, DATABASE_VERSION);
        }
     
        public ArrayList<MeteoData> getTemperature() {
            SQLiteDatabase db = this.getWritableDatabase();
            Cursor c = db.rawQuery("Select T,DateTime From " +TABLE_WHEATHER,null );
            ArrayList<MeteoData> list = new ArrayList<>();
            if (checkCursorFirst(c))
            {
                do
                {
                    MeteoData mData = new MeteoData(c.getFloat(0),c.getLong(1));
                    list.add(mData);
                }
                while (c.moveToNext());
            }
            closeCursor(c);
            db.close();
            return list;
        }
     
        private void closeCursor(Cursor cursor) {
            if(cursor != null && !cursor.isClosed()){
                cursor.close();
            }
        }
     
        private boolean checkCursorFirst(Cursor cursor) {
            return cursor!=null && cursor.moveToFirst();
        }
     
    }
Profit!
P.S. Знаю, что есть куча других способов, но этот лично для меня самый быстрый
P.S.S. Для БД лично я всегда использую Singlton и никогда не выдаю параметром Cursor, если вам нужен курсор,то на пример с ним,я же всегда закрываю и курсор и БД

Добавлено через 1 час 1 минуту
Базу положить по пути assets/databases/Wheather.db
Ответ: Спасибо! Может когда-нибудь пригодится... Добавлю ссылку в коллекцию...
Сообщение от REALIST07
P.S. Знаю, что есть куча других способов, но этот лично для меня самый быстрый
В коллекции нашел это (не тестировал):
Вопрос: После подключения ListViewAnimations не могу собрать проект

Добрый день!

Решил попробовать применить чужую библиотеку ListViewAnimations
Дока тут:

После подключения библиотеки проект не собирается, выдает:

Error:Error converting bytecode to dex:
Cause: com.android.dex.DexException: Multiple dex files define Lcom/nhaarman/listviewanimations/appearance/StickyListHeadersAdapterDecorator;


Подключал так:

Шаг 1) Скачал jar-файлы
и скопировал их в свой проект в подпапку /libs

Шаг 2) В Build.gradle (Module app) в блок dependencies добавил 3 строки compile 'com.nhaarman. .... и получилось в итоге так

Java
1
2
3
4
5
6
7
8
9
10
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.google.android.gms:play-services-appindexing:8.1.0'
 
    compile 'com.nhaarman.listviewanimations:lib-core:3.1.0@aar'
    compile 'com.nhaarman.listviewanimations:lib-manipulation:3.1.0@aar'
    compile 'com.nhaarman.listviewanimations:lib-core-slh:3.1.0@aar'
}
Шаг 3) Нажал ссылку Sync.

Шаг 4) После Sync сделал Clean Project и Rebuild Project.

Теперь имею ошибку (см.выше).
Подскажите, в чем проблема и как можно ее решить?
Спасибо.
Ответ: Спасибо. Проблема решилась (выкинул Шаг 2).
А была она в том, что надо делать что то одно:
или
Просто подключать в Build.gradle или выкачивать jar-файлы и класть в /libs (при наличии конечно строки compile fileTree(include: ['*.jar'], dir: 'libs') в Build.gradle в dependences)
Вопрос: Как подключить bass в Android Studio?

Не давно начал изучать программирование под андроид на Android Studio. Хотел попробовать написать свой проигрыватель музыки, используя bass. Скачал с сайта архив под андроид, но как его подключить к проекту на Android Studio? В архиве много папок с файлами - как их все подключить к своему проекту?
Заранее спасибо.
Ответ: Пробовал я там разобраться, но ничего не смог понять. Буду тогда методом интуиции угадывать куда файлы засовывать.

Добавлено через 23 часа 3 минуты
Мне ответили на том сайте вот что:

Basically, the contents of the BASS package "src" folder should be placed in your project's "src/main/java" folder, and the contents of the BASS package "libs" folder should be placed in your project's "src/main/jniLibs" folder (you may need to create that folder). You can then use "import com.un4seen.bass.BASS" in your code to import the BASS functions, like in the examples.

To build one of the examples included in the BASS package, you can create an empty new project with the same name (eg. name = netradio, company = example.com) and then extract the contents of the example's "src" folder to the project's "src/main/java" folder, the contents of the example's "res" folder to the project's "src/main/res" folder, and the example's "AndroidManifest.xml" file to the project's "src/main" folder (overwrite existing file). That's in addition to the BASS file steps. Resynchronize the project after doing all that.

Мне этот ответ вроде как помог. Завтра по экспериментирую.
Вопрос: Как в Android studio подключить ffmpeg

Как подключить библиотеку ffmpeg в Android studio?? Я видел только в эклипс а в студию как подключить??
Ответ:

Не по теме:

Юра, у меня остался твой токен от вк, я буду спамить тебе на стену каждый раз когда ты будет задавать очередной такой вопрос

Вопрос: Подключить проект с Github через gradle

Допустим на гитхабе есть какой то проект или библиотека и я хочу ее импортировать. И вот если этот проект скачивать от туда потом открывать в Android Studio, то возникают некоторые ошибки с gradle настройками этого проекта(то путь к файлу слишком большой, то что нибудь еще). Как избежать этих всех этих проблем наиболее оптимально(чтобы не заморачиваться с настройками этого проекта)? Может через gradle его можно как то одной строчкой подключить и все? Или еще как нибудь попроще?
Ответ: ну если у проекта который импортируешь есть какие то gradle настройки, то понятно, что он с ними и будет импортирован(если это явно никак не изменить) и мне нужно его подстроить под нормальные настройки вручную(как я обычно и делаю). Читаю мануалы по эти вопросам на StackOverFlow и делаю как там пишут для конкретной ситуации и решаю проблему настроек.

Добавлено через 41 секунду
Или создаю проект по новой и туда переношу код импортированного проекта. Если это библиотека то можно его в gradle просто одной строчкой прописать, но тогда можно будет использовать классы этой библиотеки.

Добавлено через 21 секунду
Верно рассуждаю Паблито?

Добавлено через 17 минут
Хотя, я думаю, что в каждом проекте должно быть написано как его импортировать. Надо это просто читать
Вопрос: Интеграция библиотеки с GitHub в Студию

Гуру, дайте краткую инструкцию, пли-и-из!
(библиотеками раньше не пользовался - первые шаги и "первая паранойя")

Есть такое (рисует график)
compile 'com.github.blackfizz:eazegraph:1.2.2@aar'
...Успешно встраивается в dependencies и работает

Хочу научиться СКАЧИВАТЬ подобные библиотеки к себе и подключать их проекту из папки (а не отслеживать каждый раз "обновления" на сайте).

Можете пошаговый процесс описать? Хотя-бы "на пальцах"???
библиотеку с скачал... архивчиком... Куда класть? (в либы? в корень?) как подключать? Какую из папок библиотеки указывать?(всю папку или *Library?) Может можно уже "авто-скаченное" из папкок "билда" использовать? может можно в dependencies просто указать пусть на распакованное?

Конечная цель: Хочу чужую либу встроить в мои исходники! Чтобы РЯДОМ лежали, а не в билдах! И чтобы не зависили от наличия проекта на гитхабе (или вообще инернета)

Не по теме:

Попробовал сам... в результате потребовала докачать целых 2 версии других версий андроида в SDK, хотя через dependencies запускалось, а потом вообще чуть не потерял проект на каких-то ошибках (пока вручную все упоминания из файлов проекта не вычистил)



Не по теме:

Вдруг автор уберет через неделю либу и проект станет не рабочим... и мне прийдется искать альтернативы и переписывать проект, когда надо было достать проект их архивчика, запустить в Студии и по просьбе заказчика дописать 10 строчек кода...

Ответ:
Сообщение от REALIST07
5 минут заняло:
спасибо! проверю!
(я раньше ВООБЩЕ не использовал чужие библиотеки и не создавал своих - еще не до конца понимаю их структуру чтобы знать что нужно удалять)
Вопрос: Не могу штатно запустить проект

Всем доброго дня, произошла какая-то необъяснимая для меня фигня
Мне понадобилось пересобрать свое приложение в новом проекте (надо было кое-что сравнивать в дальнейшем), перенес весь код в только что созданный проект, подгрузил библиотеку, которою использовал и в изначальном варианте, но теперь при запуске нового проекта запускается не основной модуль приложения, а почему-то подгурженная мной либа, все на сто раз перепроверил и сделал еще несколько попыток с созданием нового проекта, но результат тот же, порыл в гугле, нашел только единственного человека с такой проблемой, но ему не ответили, поэтому решил спросить Вас, может кто сталкивался с такой загадкой или просто кто знает решение, напишите, буду благодарен!
Ответ: Вроде все также?

Добавлено через 22 часа 5 минут
Решил сделать все последовательно, сохранился исходник еще без библиотеки, так вот, подгружаю к нему библиотеку, все гут-как надо запускается (то есть библиотека подгружена, но никак в приложении не используется), но стоит мне только заменить свой edittext на библиотечный emojieditte, textview на emojitextview, сразу начинается вышеописанная фигня

Добавлено через 1 час 26 минут
Хмм, попробовал не копировать из рабочего кода в новый, а просто вручную изменить edittext на библиотечный emojieditte, textview на emojitextview, все заработало, необъяснимая фигня